web-dev-qa-db-ja.com

androidでゲートウェイIPアドレスを取得する

ゲートウェイIPの詳細を取得する方法、wifimanagerを使用するオプションがありますが。 Android usbテザリングを使用して接続した場合のデバイス)でゲートウェイ、dns、およびその他の詳細を見つける方法がわからない場合.

24
Himanshu

Android 2.3.4でcyanogenmod 7.2を使用し、ターミナルエミュレータを開いて次のように入力します。

$ ip addr show
$ ip route show
22
user432672

私はこの回答を、より最近のAndroid builds(CM11/KitKat/4.4.4)のユーザー向けの更新として投稿したかった。TouchWizまたはそれ以前のAndroidはYMMVをリリースします。

次のコマンドは、すべての通常の場所(ADB、ターミナルエミュレーター、シェルスクリプト、Tasker)で実行できます。

利用可能なすべてのプロパティをリストします。

getprop

WiFiインターフェイスを取得します。

getprop wifi.interface

WiFiプロパティ:

getprop dhcp.wlan0.dns1
getprop dhcp.wlan0.dns2
getprop dhcp.wlan0.dns3
getprop dhcp.wlan0.dns4
getprop dhcp.wlan0.domain
getprop dhcp.wlan0.gateway
getprop dhcp.wlan0.ipaddress
getprop dhcp.wlan0.mask

上記のコマンドは、WiFiが実際にその時点で接続されているかどうかに関係なく情報を出力します。

次のいずれかを使用して、wlanがオンかどうかを確認します。

ifconfig wlan0

netcfg | awk '{if ($2=="UP" && $3 != "0.0.0.0/0") isup=1} END {if (! isup) exit 1}'

次のいずれかを使用して、wlan0のIPアドレスを取得します(接続されている場合のみ)。

ifconfig wlan0 | awk '{print $3}'

netcfg | awk '/^wlan0/ {sub("(0\\.0\\.0\\.0)?/[0-9]*$", "", $3); print $3}'

完全を期すために、インターネットに公開されているパブリックIPアドレスを取得するには、外部サービスを使用する必要があります。パブリックIPを取得するには:

wget -qO- 'http://ipecho.net/plain'

公開ホスト名を取得するには:

wget -qO- 'http://ifconfig.me/Host'

または、IPアドレスから直接パブリックホスト名を取得するには:

(nslookup "$(wget -qO- http://ipecho.net/plain)" | awk '/^Address 1: / { if ($NF != "0.0.0.0") {print $NF; exit}}; /name =/ {sub("\\.$", "", $NF); print $NF; exit}') 2>/dev/null

注:前述のawkコマンドは、さまざまなバージョンのnslookupからの出力を処理できるため、非常に複雑に思えます。 Androidはnslookupの一部としてbusyboxの最小バージョンを含みますが、スタンドアロンバージョンもあります(多くの場合、dnsutilsに含まれます)。

15
Six

オンAndroid 7はそれを動作させる:

 ip route get 8.8.8.8

出力は8.8.8.8ゲートウェイ経由...

5
user278801

ターミナルに行く

$ adb -s UDID Shell
$ ip addr | grep inet 
or
$ netcfg | grep inet
4
Daz

DNSサーバーは経由で取得されます

getprop net.dns1 

更新:Android Nougat 7.x、ifconfigが存在し、netcfgがなくなっているため、ifconfigを使用してIPとネットマスクを見つけることができます。

2
kevinf

これは私にはうまくいくようです。 Touchwiz 5.1、LineageOS 7.1、およびCyanogenMod 11でテスト済み。

ip route list match 0 table all scope global

次のような出力が得られます。

default via 192.168.1.1 dev wlan0  table wlan0  proto static
0
ravilov

ターミナルエミュレータアプリをインストールし、ルーティングテーブルを表示するには、コマンドプロンプトからiprouteを実行します。ルート権限は必要ありません。 DNSサーバーの入手方法がわかりません。 /etc/resolv.confファイルはありません。 nslookup www.google.comを試してサーバーのレポートを確認できますが、私の電話では0.0.0.0をレポートしますが、あまり役に立ちません。

0
Kipp Cannon

このソリューションは、ネットワークパラメータを提供します。これを確認してください solution

0