次のコマンドを使用して 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/;//'
セミコロンを削除します。