问题
I need to fetch the IPaddress assigned by the operator after a successful 3G or LTE data call.
$adb shell netcfg >> doesnt have the assigned IP address.
I tried adb shell dumpsys
and grep ip address, but in vain. Any help/pointers?
回答1:
Try this command, it will help you to get ipaddress
$ adb shell ifconfig tiwlan0
tiwlan0 is the name of the wi-fi network interface on the device. This is generic command for getting ipaddress,
“adb shell netcfg”
It will output like this
usb0 DOWN 0.0.0.0 0.0.0.0 0×00001002
sit0 DOWN 0.0.0.0 0.0.0.0 0×00000080
ip6tnl0 DOWN 0.0.0.0 0.0.0.0 0×00000080
gannet0 DOWN 0.0.0.0 0.0.0.0 0×00001082
rmnet0 UP 112.79.87.220 255.0.0.0 0x000000c1
rmnet1 DOWN 0.0.0.0 0.0.0.0 0×00000080
rmnet2 DOWN 0.0.0.0 0.0.0.0 0×00000080
回答2:
Try:
adb shell ip addr show rmnet0
It will return something like that:
3: rmnet0: <UP,LOWER_UP> mtu 1500 qdisc htb state UNKNOWN qlen 1000
link/[530]
inet 172.22.1.100/29 scope global rmnet0
inet6 fc01:abab:cdcd:efe0:8099:af3f:2af2:8bc/64 scope global dynamic
valid_lft forever preferred_lft forever
inet6 fe80::8099:af3f:2af2:8bc/64 scope link
valid_lft forever preferred_lft forever
This part is your IPV4 assigned by the operator
inet 172.22.1.100
This part is your IPV6 assigned by the operator
inet6 fc01:abab:cdcd:efe0:8099:af3f:2af2:8bc
回答3:
According to comments: netcfg was removed in Android 6
Try
adb shell netcfg
Or
adb shell <device here or leave out if one device>
shell@android:/ $netcfg
回答4:
You can get the device ip address by this way:
adb shell ip route > addrs.txt
#Case 1:Nexus 7
#192.168.88.0/23 dev wlan0 proto kernel scope link src 192.168.89.48
#Case 2: Smartsian T1,Huawei C8813
#default via 192.168.88.1 dev eth0 metric 30
#8.8.8.8 via 192.168.88.1 dev eth0 metric 30
#114.114.114.114 via 192.168.88.1 dev eth0 metric 30
#192.168.88.0/23 dev eth0 proto kernel scope link src 192.168.89.152 metric 30
#192.168.88.1 dev eth0 scope link metric 30
ip_addrs=$(awk {'if( NF >=9){print $9;}'} addrs.txt)
echo "the device ip address is $ip_addrs"
回答5:
Try this command for Version <= Marshmallow,
adb devices
List of devices attached 38ccdc87 device
adb tcpip 5555
restarting in TCP mode port: 5555
adb shell ip addr show wlan0
24: wlan0: mtu 1500 qdisc mq state UP qlen 1000 link/ether ac:c1:ee:6b:22:f1 brd ff:ff:ff:ff:ff:ff inet 192.168.0.18/24 brd 192.168.0.255 scope global wlan0 valid_lft forever preferred_lft forever inet6 fd01::1d45:6b7a:a3b:5f4d/64 scope global temporary dynamic valid_lft 287sec preferred_lft 287sec inet6 fd01::aec1:eeff:fe6b:22f1/64 scope global dynamic valid_lft 287sec preferred_lft 287sec inet6 fe80::aec1:eeff:fe6b:22f1/64 scope link valid_lft forever preferred_lft forever
To connect to your device run this
adb connect 192.168.0.18
connected to 192.168.0.18:5555
Make sure you have adb inside this location android-sdk\platform-tools
回答6:
Try:
adb shell ip addr show rmnet0 | grep 'inet ' | cut -d' ' -f6|cut -d/ -f1
It will return your IPV4 assigned by the operator
172.22.1.215
回答7:
adb shell ip addr > ippdetails.txt This will get all list of ip's assigned to devices.
回答8:
download this app from here it will help you to rum all commands. I have run netcfg and it gives the result as attached in screen.

回答9:
ip route | grep rmnet_data0 | cut -d" " -f1 | cut -d"/" -f1
Change rmnet_data0
to the desired nic, in my case, rmnet_data0
represents the data nic.
To get a list of the available nic's you can use ip route
回答10:
You also can try this:
Step 1: adb shell Step 2: ip -f inet addr show wlan0
回答11:
To get all IPs (WIFI and data SIM) even on a non-rooted phone in 2019 use:
adb shell ip -o a
The output looks like:
1: lo inet 127.0.0.1/8 scope host lo\ valid_lft forever preferred_lft forever
1: lo inet6 ::1/128 scope host \ valid_lft forever preferred_lft forever
3: dummy0 inet6 fe80::489c:2ff:fe4a:00005/64 scope link \ valid_lft forever preferred_lft forever
11: rmnet_data1 inet6 fe80::735d:50fb:2e2:0000/64 scope link \ valid_lft forever preferred_lft forever
21: r_rmnet_data0 inet6 fe80::e38:ce2a:523a:0000/64 scope link \ valid_lft forever preferred_lft forever
30: wlan0 inet 192.168.178.0/24 brd 192.168.178.255 scope global wlan0\ valid_lft forever preferred_lft forever
30: wlan0 inet6 fe80::c2ee:fbff:fe4a:0000/64 scope link \ valid_lft forever preferred_lft forever
You can connect either through adb shell or run the comman ip -o a
directly in a terminal emulator. Again, no root required.
来源:https://stackoverflow.com/questions/13169249/adb-command-for-getting-ip-address-assigned-by-operator