다음 명령을 사용하여 Wi-Fi 인터페이스를 액세스 포인트에 수동으로 연결한 후:
iwconfig $wifi essid "$1"
dhclient $wifi
# ... $wifi = wlan3
나는 다음을 실행해야 한다는 것을 알았습니다.
route add default gw 192.168.12.1 $wifi
실제로 작동하게 만드세요. 나는 이것이 192.168.12.1
여기 액세스 포인트의 IP라는 것을 알고 있지만 일단 연결되면 어떤 일이 일어나는지 결정하기 위한 프로그래밍 방식이 필요합니다.
내가 찾은 가장 가까운 것은 route -n
다음 줄을 포함하는 실행 중입니다.
...
192.168.12.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan3
여기서는 마지막 숫자가 다를 수 있다고 192.168.12.0
자동으로 가정할 수 없다고 들었습니다 .192.168.12.1
프로그래밍 방식으로 여기에 어떻게 갈 수 있는지 아는 사람이 있나요 192.168.12.1
?
고쳐 쓰다:액세스 포인트 IP를 볼 /var/lib/dhcp/dhclient.wlan3.leases
때 이름 이 여러 번 나열된 것을 발견했습니다. grep
어떤 옵션이 분석하기에 가장 좋은지 아직 잘 모르겠습니다.
결과 cat /var/lib/dhcp/dhclient.wlan3.leases | grep 192.168.12.1
:
fixed-address 192.168.12.120;
option routers 192.168.12.1;
option dhcp-server-identifier 192.168.12.1;
option domain-name-servers 192.168.12.1;
fixed-address 192.168.12.120;
option routers 192.168.12.1;
option domain-name-servers 192.168.12.1;
option dhcp-server-identifier 192.168.12.1;
업데이트 #2:실행한 적이 없지만 route add ...
나열된 첫 번째 명령을 실행한 다른 장치를 사용합니다. dhclient 임대 파일이 존재하지 않는 것으로 나타났습니다. 아마도 route
이 파일을 생성하는 명령일까요?
답변1
다음 명령을 사용하여 게이트웨이를 인쇄할 수 있습니다.
ip route show | awk '/default/ { print $3 }'
또는
netstat -n -r | awk '/UG/ { print $2 }'
또는
netstat -n -r | grep 'UG\|*wlan3$' | awk '{print $2}'
답변2
그것은 다음과 같습니다:
grep routers /var/lib/dhclient/dhclient-eth0.leases |sort -u |cut -d ' ' -f 5 |sed -e 's/;//'
필요한 IP가 생성됩니다.
sort -u
고유한 행 목록이 제공됩니다.option routers 192.168.25.1;
cut -d ' ' -f 5
줄을 공백으로 분할하고 필드 5를 입력한 192.168.25.1
다음 sed -e 's/;//'
뒤따르는 세미콜론을 제거합니다.