Самый простой способ показать мой IP-адрес?


62

После того, как я загрузился, какой самый простой способ получить и отобразить IP-адрес, который устройство использует в настоящее время?
Я использую Raspbian, и, ifconfigкажется, не установлен.

Есть ли виджеты, которые отображают эту информацию в LXDE?


4
Это вероятно установлено; Вы должны выполнить suconfig в Debian.
Алекс Чемберлен

Я понимаю это сейчас. Я думаю, что я был испорчен подсказками командной строки Ubuntu. Я проверю это, когда снова включу.
Zoot

Это скорее штуковина, чем Ubuntu. Я думаю, что ifconfig просто установлен с разными разрешениями.
Алекс Чемберлен

1
Да, я забыл судо. ifconfig установлен по умолчанию, но он выдает ошибку команды not found, если вы не сделали этого. Спасибо!
Zoot

Мой Raspbian показывает IP-адрес перед входом в систему.
Торбьерн Равн Андерсен

Ответы:


65

Семейство инструментов if, включая ifconfig, устарело и заменяется новыми командами ip, поэтому вы можете использовать любой из следующих параметров в командной строке для определения своего IP-адреса:

sudo ip addr show

или же

sudo hostname --ip-address

или если вы все еще хотите использовать ifconfig, и он еще не установлен

sudo apt-get install wireless-tools
sudo ifconfig -a

1
@jackweirdy, это новые инструменты, которые заменяют старые инструменты if. Попробуйте man ip для некоторых дополнительных деталей.
Стив Робиллард

1
ура за это, узнал что-то новое сегодня :)
jackweirdy

это команда "arp", которая покажет вам что-то в строке IP-адреса?
Петр Кула

4
ip aдостаточно, если вы хотите получить IP-адрес :)
Der Hochstapler

3
Ни одна из команд отображения на самом деле не нуждается в разрешениях sudo. Это, вероятно, показано из-за побочного эффекта установки вашего пути для включения / sbin. Вы можете запустить /sbin/ifconfigили /sbin/ipкак любой пользователь в обычном режиме.
XTL

12

Вы также можете использовать этот маленький скрипт на python.

import socket

def get_local_ip_address(target):
  ipaddr = ''
  try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    s.connect((target, 8000))
    ipaddr = s.getsockname()[0]
    s.close()
  except:
    pass

  return ipaddr
print "Raspberry Pi - Local IP Address"
print(get_local_ip_address('10.0.1.1'))
print(get_local_ip_address('google.com'))

9
Немного излишне, не правда ли? Не так много смысла заменять существующие команды Linux, которые достигают того же.
Jivings

2
@ Jivings Немного резкий - это ответ, который работает! (Я говорю без тестирования ...) Это может быть основой виджета на рабочем столе, например.
Алекс Чемберлен

1
@Bryan Добро пожаловать в Stack Exchange и Raspberry Pi!
Алекс Чемберлен

1
@AlexChamberlain Извините, Брайан. Этим утром еще не
пили

1
Это может быть даже добавлено к службе сообщений, которая запускается после входа в систему, чтобы автоматически отображать IP-адрес рядом с сообщением startx. Тогда это будет автоматический ввод без необходимости.
Стив Робиллард

8

В качестве альтернативы поиску IP-адреса, назначенного DHCP, я добавил зарезервированный IP-адрес на моем маршрутизаторе / DHCP-сервере. Он соответствует MAC-адресу Raspi и всегда назначает один и тот же IP-адрес - даже после новой установки ОС.

Теперь, когда в Wheezy SSH включен по умолчанию, это означает, что я могу войти в систему только что установленного Raspberry Pi без необходимости подключения клавиатуры или монитора.

Извиняюсь за то, что не ответил на вопрос напрямую, но это казалось достаточно тесно связанным, чтобы предложить.


Если это помогает людям находить простые способы определения IP, я все за это.
Zoot

7

Вы можете проверить состояние DHCP / журналы на вашем DHCP-сервере. Особенно если это в вашей домашней сети. На всех принадлежащих мне роутерах это было довольно легко найти.

Это полезно, если вы работаете без головы и просто хотите узнать адрес для ssh.


@gnibbler +1 за решение проблемы для тех, кто работает без головы. Можно подумать, что определить, какое устройство является Pi, может быть непросто, поскольку оно не всегда идентифицирует себя по сети, и поэтому может отображаться без имени в списке подключенных устройств. В этой теме raspberrypi.org/phpBB3/viewtopic.php?f=36&t=6998 есть больше о проблеме и решении
Стив Робиллард

@SteveRobillard, мой действительно идентифицирует себя, но это также может помочь кому-то, если они увидят, что MAC-адрес начинается, как b8:27:eb:xx:xx:xx, вероятно, это RPi :)
Джон Ла Рой

5

Что сработало для меня:

sudo ifconfig

так как ifconfigбыл вsbin/ifconfig


Хотя я ценю ваш ответ, комментарий Алекса Чемберлена и ответ Стива Робилларда уже содержат эту информацию.
Zoot

5

Если вы хотите увидеть свой внешний IP-адрес, используйте его в командной строке

curl http://ipecho.net/plain ; эхо;

Вы можете создать функцию, чтобы сделать это проще.

Отредактируйте ваш .bashrc и добавьте следующую функцию в конец файла.

Функция для отображения внешнего IP-адреса

Функция для отображения внешнего IP-адреса

Вызов вашей функции из кли

введите описание изображения здесь

Вы можете найти более интересные способы получения вашего IP-адреса в этой ссылке

http://www.if-not-true-then-false.com/2010/linux-get-ip-address/


5
$ host raspberrypi
raspberrypi has address 192.168.1.20

$ host raspberrypi | grep ‘address’ | cut -d’ ‘ -f4
192.168.1.20

$ nslookup 192.168.1.20
Server:  192.168.1.1
Address:    192.168.1.1#53
20.1.168.192.in-addr.arpa   name = raspberrypi.

$ nslookup 192.168.1.20 | grep ‘=’ | cut -d’ ‘ -f3
raspberrypi

2

Ши Силверман и Джейкоб Бейтс недавно создали инструмент под названием PIP, который позволяет вам получить IP вашего raspberry pi, даже не прикрепляя его к экрану, поскольку он устанавливает скрипт, который отправляет ваш IP-адрес на сервер, который вы можете посетить со своим Основной ПК. Возможно, это не лучший вариант в любой ситуации, но это очень умный взлом.


2

Baby скрипт для возврата ip-адреса, работает из подсказки:

список IP-адресов | grep inet | grep -v 127.0.0 | cut -d "" -f 6 | cut -d "/" -f 1


1

Я предлагаю вам использовать Bonjour вместо того, чтобы искать IP-адрес. Пусть он будет назначен через DHCP, и пока ваш компьютер находится в той же сети, вы можете получить к нему доступ по имени.

Например .. raspberrypi.local

После настройки вы можете работать полностью без подключения, подключаться к Pi с помощью SSH или VNC и т. Д.

Вот статья, объясняющая, как настроить Bonjour. http://www.raspberrypi.org/forums/viewtopic.php?f=66&t=18207

Обратите внимание, что для Windows-машины вам потребуется установить драйвер служб принтера Apply Bonjour, крошечная вещь ...

Для Mac и Ubuntu Bonjour уже есть.


0

Просто чтобы добавить сюда какое-то дополнение, причина, по которой у вас может не быть ifconfig, заключается в том, что ваша система, вероятно, использует вместо этого пакет iproute2. iproute2 включает обновленные эквиваленты старого ifconfig и наборов маршрутов.

Я поднимаю этот вопрос, потому что если вы начнете пробовать команды, к которым вы привыкли, с помощью ifconfig или route, ваш первый инстинкт может заключаться в установке этих старых пакетов, а не просто в использовании нового эквивалента. Например, если вам нужно использовать netstat и понять, что его нет, просто выполните поиск «iproute2 эквивалент netstat», и вы должны найти команду «ss». Дополнительную информацию и документацию см. В статье Linux Foundation: http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2.


1
Я ценю ваш ответ, но у меня установлен ifconfig. Я просто забыл судить перед командой. Проверьте комментарии ниже ответ.
Zoot

1
Doh! Я использую только Arch, и некоторое время он не использовал ifconfig.
Коди

Нет проблем. Это тоже бросило меня в тупик.
Zoot

Arugh, вам не нужно sudo для ifconfig, вам просто нужно вызвать весь путь, так как в данный момент его нет в $ PATH. где ifconfig даст вам путь, если требуется; тогда вы можете запустить его оттуда. Судо не ответ!
djsmiley2k - CoW

0

Я видел множество ответов. некоторые я знал, а некоторые я не знал. Есть еще один, которым я всегда пользуюсь, которого еще не было в списке. Если это так, и я пропустил это ой извините.

имя хоста sudo -I


0

Один лайнер с ifconfig и sed:

sudo ifconfig wlan0 | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'

Замените wlan0 на нужный интерфейс.


-1
curl ipinfo.io 

работает для меня как на Ubuntu и Raspbian


Просто для пояснения для тех, кто может не знать: этот конкретный ответ даст внешний (выходящий в Интернет) IP-адрес маршрутизатора локальной сети или брандмауэра, на котором включен Raspberry Pi. Он не даст конкретный IP-адрес локальной сети самого Pi. Это может быть полезно для устранения неполадок в Интернете. Чтобы получить IP-адрес локальной сети в качестве заданного вопроса, посмотрите другие ответы здесь в этом вопросе.
MrChips

-2

Я считаю, что arp -aна Windows или Linux будет проще всего, когда ваш пи подключен к сети.


2
Мне кажется, это дает адреса других систем, а не ваши собственные. Также примечание в man arpнастоящее время начинается «Эта программа устарела».
Златовласка

-3

Я не знаю о LXDE. Чтобы узнать ваш IP-адрес вашего устройства, посетите сайт Ip-Details.com . Здесь они также предоставят IP-адрес, адрес интернет-провайдера, страну и т. Д.


3
Это обеспечит только внешний IP, а не ваш внутренний IP.
Zoot
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.