45

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

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

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

4

12 回答 12

71

试试这个命令,它会帮助你获取 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
于 2012-11-01T00:17:18.957 回答
24

尝试:

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

网内 172.22.1.100

这部分是运营商分配给你的IPV6

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

于 2014-10-03T17:56:21.500 回答
17

根据评论:netcfg 在 Android 6 中被移除

尝试

adb shell netcfg

或者

adb shell <device here or leave out if one device>
shell@android:/ $netcfg
于 2014-01-16T07:45:22.880 回答
15

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

于 2017-06-20T08:05:03.730 回答
11

您可以通过这种方式获取设备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"
于 2015-09-17T11:50:47.310 回答
9

你可以试试这个命令:

adb shell ip addr show rmnet0  | grep 'inet ' | cut -d ' ' -f 6 | cut -d / -f 1

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

172.22.1.215

笔记:

rmnet0应该用你的界面替换我的情况rmnet0通常是eth0.

如果您想获取接口列表,请使用以下命令:

ip link show

你会得到这样的东西:

1: lo:  mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc mq state UP qlen 1000
    link/ether b8:ac:6f:65:31:e5 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.5/24 brd 192.168.1.255 scope global eth0
    inet6 fe80::baac:6fff:fe65:31e5/64 scope link 
       valid_lft forever preferred_lft forever
3: wlan0:  mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:21:6a:ca:9b:10 brd ff:ff:ff:ff:ff:ff
4: pan0:  mtu 1500 qdisc noop state DOWN 
    link/ether 92:0a:e7:31:e0:83 brd ff:ff:ff:ff:ff:ff
5: vmnet1:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:50:56:c0:00:01 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.1/24 brd 192.168.121.255 scope global vmnet1
    inet6 fe80::250:56ff:fec0:1/64 scope link 
       valid_lft forever preferred_lft forever
6: vmnet8:  mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
    link/ether 00:50:56:c0:00:08 brd ff:ff:ff:ff:ff:ff
    inet 192.168.179.1/24 brd 192.168.179.255 scope global vmnet8
    inet6 fe80::250:56ff:fec0:8/64 scope link 
       valid_lft forever preferred_lft forever

通常在哪里,

  • lo– 环回接口。
  • eth0– Linux 上的第一个以太网网络接口。
  • wlan0– Linux 中的无线网络接口。
于 2017-02-07T08:23:58.210 回答
4

你也可以试试这个:

第 1 步: adb shell 第 2 步: ip -f inet addr show wlan0

于 2019-04-04T17:52:19.357 回答
3

adb shell ip addr > ippdetails.txt 这将获取分配给设备的所有 ip 列表。

于 2014-06-17T05:08:03.120 回答
2

从此处下载此应用程序,它将帮助您朗读所有命令。我已经运行了 netcfg,它给出了屏幕中附加的结果。

输出画面

于 2015-03-27T05:36:42.763 回答
1
ip route | grep rmnet_data0 | cut -d" " -f1 | cut -d"/" -f1

rmnet_data0在我的情况下,更改为所需的 nicrmnet_data0代表数据 nic。

要获取可用 nic 的列表,您可以使用ip route

于 2015-10-02T03:19:54.263 回答
1

要在 2019 年使用无根手机获取所有 IP(WIFI 和数据 SIM) ,请使用:

adb shell ip -o a

输出如下所示:

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

您可以通过 adb shell 进行连接,也可以ip -o a直接在终端模拟器中运行该命令。同样,不需要根。

于 2019-12-27T14:42:27.830 回答
1

对于 IP 地址 - 您将在下面写下您的 IPadb shell ifconfig 地址wlan0 Link encap:UNSPEC

于 2020-11-26T06:21:18.500 回答