Adb для получения IP-адреса, назначенного оператором

Мне нужно получить IPaddress, назначенный оператором после успешного вызова данных 3G или LTE.

$adb shell netcfg >> doesnt have the assigned IP address. 

Я пробовал adb shell dumpsys и grep ip address, но тщетно. Любая помощь / указатели?

Solutions Collecting From Web of "Adb для получения IP-адреса, назначенного оператором"

Попробуйте эту команду, это поможет вам получить ipaddress

 $ adb shell ifconfig tiwlan0 

Tiwlan0 – это имя сетевого интерфейса wi-fi на устройстве. Это общая команда для получения ipaddress,

  “adb shell netcfg” 

Он будет выводиться следующим образом

 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 

Пытаться

 adb shell netcfg 

Или

 adb shell <device here or leave out if one device> shell@android:/ $netcfg 

Пытаться:

 adb shell ip addr show rmnet0 

Это вернет что-то вроде этого:

 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 

Эта часть – ваш IPV4, назначенный оператором

Inet 172.22.1.100

Эта часть – ваш IPV6, назначенный оператором

Inet6 fc01: abab: cdcd: efe0: 8099: af3f: 2af2: 8bc

Вы можете получить IP-адрес устройства таким образом:

 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" 

Скачайте это приложение здесь, это поможет вам развернуть все команды. Я запустил netcfg, и он дает результат, как показано на экране.

Экран вывода

Adb shell ip addr> ippdetails.txt Это получит весь список ip, назначенных устройствам.

Попробуйте эту команду для версии <= Marshmallow,

 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 глобальная временная динамическая valid_lft 287sec preferred_lft 287sec inet6 fd01 :: aec1: eeff: fe6b: 22f1 / 64 scope глобальная динамическая valid_lft 287sec preferred_lft 287sec inet6 fe80 :: Aec1: eeff: fe6b: 22f1 / 64 scope link valid_lft forever preferred_lft навсегда

Для подключения к устройству выполните это

 adb connect 192.168.0.18 

Подключен к 192.168.0.18:5555

 ip route | grep rmnet_data0 | cut -d" " -f1 | cut -d"/" -f1 

Измените rmnet_data0 на нужный nic, в моем случае rmnet_data0 представляет данные nic.

Чтобы получить список доступных ников, вы можете использовать ip route

Пытаться:

 adb shell ip addr show rmnet0 | grep 'inet ' | cut -d' ' -f6|cut -d/ -f1 

Он вернет ваш IPV4, назначенный оператором

172.22.1.215