adb命令用于获取运营商分配的IP地址

use*_*049 37 android adb android-intent

在成功进行3G或LTE数据呼叫后,我需要获取运营商分配的IP地址.

$adb shell netcfg >> doesnt have the assigned IP address.
Run Code Online (Sandbox Code Playgroud)

我试过adb shell dumpsys和grep ip地址,但是徒劳无功.任何帮助/指针?

Raj*_*mar 61

试试这个命令,它会帮助你获得ipaddress

$ adb shell ifconfig tiwlan0
Run Code Online (Sandbox Code Playgroud)

tiwlan0是设备上wi-fi网络接口的名称.这是获取ipaddress的通用命令,

 “adb shell netcfg”
Run Code Online (Sandbox Code Playgroud)

它会像这样输出

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
Run Code Online (Sandbox Code Playgroud)

  • 很好的答案.对于常规的Wi-Fi连接,它是'wlan0':`adb shell ifconfig wlan0` (6认同)
  • 需要 root:尝试 ```adb shell ip -oa``` (2认同)

Rav*_*ila 17

根据评论:在Android 6中删除了netcfg

尝试

adb shell netcfg
Run Code Online (Sandbox Code Playgroud)

要么

adb shell <device here or leave out if one device>
shell@android:/ $netcfg
Run Code Online (Sandbox Code Playgroud)

  • 在Android 6中删除了`netcfg`. (2认同)

小智 16

尝试:

adb shell ip addr show rmnet0
Run Code Online (Sandbox Code Playgroud)

它将返回类似的东西:

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 
Run Code Online (Sandbox Code Playgroud)

这部分是您的运营商分配的IPV4

inet 172.22.1.100

这部分是您的运营商分配的IPV6

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

  • 我认为每个人都应该开始使用 `ip addr show &lt;INTERFACE&gt;` 因为 `ifconfig` 方式在最近的 linux 系统上已被弃用,我注意到 Lollipop Nexus 5 和 Marshmallow Nexus 5X 上的 `ifconfig` 行为对于 `ifconfig` 是不同的和 `netcfg`,所以 `ip addr show` 方式是我可以让两者都按预期工作的唯一方法。 (2认同)

Fol*_*lyd 8

您可以通过以下方式获取设备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"
Run Code Online (Sandbox Code Playgroud)


Man*_*ish 8

对于版本<=棉花糖,请尝试使用此命令,

adb devices
Run Code Online (Sandbox Code Playgroud)

连接的设备列表38ccdc87设备

adb tcpip 5555
Run Code Online (Sandbox Code Playgroud)

在TCP模式下重新启动端口:5555

adb shell ip addr show wlan0
Run Code Online (Sandbox Code Playgroud)

24:wlan0:mtu 1500 qdisc mq状态UP qlen 1000 link / ether ac:c1:ee:6b:22:f1 brd ff:ff:ff:ff:ff:ff:ff inet 192.168.0.18 / 24 brd 192.168.0.255作用域全局wlan0 valid_lft永远为preferred_lft永远为inet6 fd01 :: 1d45:6b7a:a3b:5f4d / 64作用域全局临时动态valid_lft 287sec preferred_lft 287sec inet6 fd01 :: aec1:eeff:fe6b:22f1 / 64作用域全局动态valid_lft 287sec inet6et aec1:eeff:fe6b:22f1 / 64范围链接永久有效_lft永久首选_lft

要连接到设备,请运行此

adb connect 192.168.0.18
Run Code Online (Sandbox Code Playgroud)

连接到192.168.0.18:5555

确保您在此位置android-sdk \ platform-tools中有adb

  • 无需通过wifi连接adb,也可以在USB模式下使用。另外,你不想显示 wlan0 而只是``adb shell ip -oa``` (2认同)

Teo*_*cci 6

尝试:

adb shell ip addr show rmnet0  | grep 'inet ' | cut -d' ' -f6|cut -d/ -f1
Run Code Online (Sandbox Code Playgroud)

它将返回您由运营商分配的IPV4

172.22.1.215