Как я могу узнать, какой IP-адрес имеет мой телефон Android?

Я хотел бы знать, какой IP-адрес у моего телефона Android. Например, если я использую свой телефон через WiFi, как я могу получить локальный IP-адрес, назначенный моему телефону?

4G-IP можно найти в разделе «Настройки» -> «Система» -> «О телефоне» -> «IP-адрес».

Ответы (5)

Самый простой способ — зайти в настройки WiFi и нажать Menu > Advanced. Он будет отображаться там, или вы можете установить для него статический IP-адрес, если хотите.

Крутой способ — набрать номер *#*#4636#*#*, чтобы открыть меню «Тестирование». Затем нажмите «Информация о WiFi», затем «Статус WiFi».

Когда я звоню ##4636##, я получаю это сообщение: Connection problem or invalid MMI code. А в расширенном меню WiFi Settings не могу увидеть IP-адрес, если он задан по DHCP. Но спасибо за это меню, я не знал о нем.
Ха-ха, извините за это, да, видимо, звездочка превращается в курсивный знак фунта стерлингов? То есть вы не можете увидеть свой DHCP-адрес в настройках WiFi? Я запускаю Cyanogenmod и вижу свой в нижней части меню. Не знал, что это не стандартная функция. :О
Нет, на моем Nexus One с Android 2.2 IP-адреса нет. но Testing menyбыло очень хорошо.

ifconfigи ipандроид 7

adb shell ifconfig
adb shell ip address show

ifconfigбыла раздражающей реализацией, которая не показывала все версии по умолчанию в более ранних версиях, как описано ниже, но теперь она работает нормально.

netcfg Android 5.1.1

Этот инструмент был удален в более поздних версиях Android и ifconfigстал более приличным и по умолчанию показывает все интерфейсы, что делает этот метод бесполезным в более новых версиях.

adb shell netcfg | grep wlan0

с вашего рабочего стола — лучший вариант, если вы уже разрабатываете для Android и имеете adbнастройку USB-подключения.

Пример вывода:

wlan0 UP 192.168.0.3/24 [...]

Подтвердить с помощью:

adb shell ifconfig wlan0

ifconfigна Android ( самоварка ?) отличается от версии на настольных компьютерах ( net-toolsпакет на Ubuntu 15.10), поскольку требует предоставления интерфейса.

Это также упоминается в: Есть ли команда или приложение, подобное ipconfig?

Вы также можете установить эмулятор терминала, например Teriminal Emulator от Jack Palevich , открыть его и ввести: netcfg. Но в этом случае вам лучше использовать какое-нибудь приложение, которое показывает IP-адреса, поскольку печатать на устройствах неудобно (если у вас нет внешней клавиатуры...).

Если все, что вам нужно, это SSH на устройстве, adb shellэто путь: https://stackoverflow.com/a/34040560/895245

Если вы разрабатываете серверное приложение, наиболее удобным для пользователя было бы показать IP-адреса устройства на некоторых TextView, которые имеют метод чистой Java: https://stackoverflow.com/questions/494465 | https://stackoverflow.com/questions/6064510/how-to-get-ip-address-of-the-device

Управление браузером роутера

Если вы дома, вы можете:

  • подключите свой рабочий стол к маршрутизатору с помощью кабеля Ethernet
  • получить доступ к какому-то волшебному адресу, зависящему от поставщика, часто http://192.168.0.1
  • у большинства поставщиков есть список IP-адресов устройств где-то там

карта

Если на вашем устройстве работает сервер, например SSHD на порту 2222, как описано по адресу: https://stackoverflow.com/a/34040560/895245 , вы можете отсканировать его:

sudo nmap -sV --open 192.168.0.0/24 -p2222
Работает и на Android 4.2.1.

Самый простой способ — использовать такой инструмент, как, например , OS Monitor , который показывает вам (среди прочего) множество сетевых сведений:

Монитор ОС
Монитор ОС, показывающий сведения о сетевом интерфейсе (источник: Google Play ; щелкните изображение, чтобы увеличить его)

Как показано на скриншоте, это приложение показывает для каждого сетевого интерфейса:

  • имя интерфейса¹
  • Назначенный IP-адрес IPv4 (если 0.0.0.0этот интерфейс в настоящее время не используется)
  • IPv6-адрес (если доступен)
  • MAC-адрес
  • статистика пакетов (т.е. переданных данных)
  • статус

¹ имена интерфейсов могут обрабатываться по-разному на разных устройствах. Но в большинстве случаев по IP можно определить, кому он принадлежит. Кроме того, rmnetв основном используется для GPRS (мобильные данные), а WiFi использует такие имена, как tiwlanили eth.

В любом приложении эмулятора терминала:

~$ ip -o a

Применимо как к WiFi, так и к мобильным данным. Не требует рута.

Это старый вопрос, но я думаю, вы можете попробовать эту команду:

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– Ваш первый сетевой интерфейс Ethernet в Linux.
  • wlan0– Беспроводной сетевой интерфейс в Linux.