私のシステムでは、eth0(接続されている場合とされていない場合があります)とppp0にモデム(常にアップまたはダウンしている可能性があります)があります。両方のインターフェースが稼働していて、ppp0がデフォルトのルートである場合、ゲートウェイIPの実際のeth0のIPアドレスを判別する方法を見つけたいと思います。 「netstat -rn」を試しましたが、この構成では出力は次のようになります。
カーネルIPルーティングテーブル 宛先ゲートウェイGenmaskフラグMSSウィンドウirtt Iface xx.xx.xxx.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.98.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
それでは、eth0のゲートウェイアドレスをどのように決定しますか?上記の場合、実際のゲートウェイアドレスは192.168.98.1です。
eth0
がDHCPクライアントインターフェイスであると想定します。
1つのオプションは、DHCPクライアントのリースファイルをチェックすることです dhcpd.leases
場所と名前はシステムによって異なります。一部のFedoraシステムでは、/var/lib/dhclient/
の下のファイルはリースファイルであり、興味深い文字列は次のようになります。
option routers 192.168.1.1;
Funtooボックスで私のために働いた別のオプション:dhcpcd -U eth0
スクリプトで調達できるように、素敵な表を印刷します
broadcast_address=192.168.1.255
dhcp_lease_time=86400
dhcp_message_type=5
dhcp_server_identifier=192.168.1.1
domain_name_servers='192.168.1.1 192.168.1.101'
ip_address=192.168.1.101
network_number=192.168.1.0
routers=192.168.1.1
subnet_cidr=24
subnet_mask=255.255.255.0
グーグルとマンページによると、dhcping
、dhclient -n
のような他のオプションがありますが、私のボックスでは失敗しますが、あなたのために働くかもしれません。
Linux:
ターミナルを開く必要があります。 Linuxディストリビューションに応じて、画面の上部または下部のメニュー項目に配置できます。この例では、Fedoraを使用します。 [アプリケーション]> [システムツール]> [ターミナル]をクリックします。
端末が開いているときに、次のコマンドを入力します。ip route | grep default
この出力は次のようになります。
joe$ ip route | grep default
default via 192.168.1.1 dev eth0 proto static
この例でも、192.168.1.1がデフォルトゲートウェイ(ルーター)のIPアドレスです。
このトピックの詳細については ゲートウェイIPを見つける方法(linux/win/osx) 。