Сети - Общий к другим Компьютерам - Как найти IP-адрес клиента?

Аппаратные средства похожи на это:

  • Ноутбук с доступом в Интернет через WiFi. Маршрутизатор практически недоступен.
  • Бездисплейное Пи Banana/Raspberry/Your-Favorite-Flavor, которому нужны изображение SD и некоторые дополнительные пакеты.

Таким образом, я получаю временный перекрестный кабель между Пи и ноутбуком, устанавливаю порт Ethernet ноутбука, как "Совместно использовано к другим компьютерам" (*), отображаю SD-карту и загружаю Пи. Теперь, что адрес Пи имеет так, я могу SSH в него?

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


(*) Сетевое Уведомление-> Соединения Редактирования...-> Проводное соединение 1-> кнопка Edit-> вкладка IPv4 Settings-> Метод = Общий к другим компьютерам

6
задан 13 April 2017 в 05:24

2 ответа

Существует пара вещей, которые можно сделать. Принятие у Вас есть единственное соединение Ethernet, идущее от ноутбука до малины, затем arp-scan будет достаточен. Во-первых, фигура, что является названием Вашего интерфейса Ethernet. В моем случае это eth3. Таким образом вот пример:

bash-4.3$ sudo arp-scan -I eth3 --localnet
[sudo] password for xieerqi: 
Interface: eth3, datalink type: EN10MB (Ethernet)
Starting arp-scan 1.8.1 with 256 hosts (http://www.nta-monitor.com/tools/arp-scan/)
10.42.0.40  b8:27:eb:96:38:91   (Unknown)

1 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.8.1: 256 hosts scanned in 1.459 seconds (175.46 hosts/sec). 1 responded

В выводе Вы видите, что моя Малина имеет 10.42.0.40 IP-адреса.

arp-scan очень простой подход и не требует слишком большого количества пота. Альтернативные методы могут использоваться также. Вот несколько из них:

  • Знание первых 3 октетов сети (например, через ip addr show eth3 команда в моем случае), Вы могли записать простой сценарий, который проверяет с помощью ping-запросов диапазон хостов. (См. ниже для сценария Python, который делает это).
  • fping альтернативно к стандарту ping команда, которая действительно позволяет диапазону узлов зондироваться
  • Можно использовать nmap выполнить исследование хоста во множестве методов. В частности, эта команда: nmap -e eth3 -sn 10.42.0.0/24 работал бы лучшее - это сообщает nmap только выполнить исследование хоста с -sn опция (который под капотом отправляет запросы ARP для широковещательной передачи MAC-адреса), в интерфейсе, указанном -e опция. 10.42.0.0/24 нотация CIDR для сети. Довольно простой.
  • Wireshark может также использоваться для получения пакетов на интерфейсе Ethernet. Конечно, Ваша Малина должна отослать некоторые пакеты во-первых, чтобы они были получены, таким образом, она не могла бы работать, если у Вас нет "болтливой" малины. Можно, однако, запустить получение, фильтр протоколом UDP, отключить и включиться назад в Малине. Необходимо видеть запрос DHCP и ответ, идущий в него

    enter image description here

  • Устройства создают свою arp таблицу со временем, когда хосты кажутся/исчезают из сети, таким образом, Вы могли также использовать arp -a команда.

  • Если Вы используете стандартную Ubuntu и не устанавливали альтернативных серверов DHCP, можно проверить dnsmasq файл арендных договоров, для которого IP был присвоен Вашим устройствам. Например:

    bash-4.3$ cat /var/lib/misc/dnsmasq.leases 
    1479095355 b8:27:eb:96:38:91 10.42.0.40 localhost *
    

    Посмотрите мой связанный вопрос here:DHCP арендный договор для пи малины, не найденного


nmap и Wireshark подходы будут довольно полезны, если у Вас будет Ethernet-коммутатор с несколькими устройствами, присоединенными к нему.

Так как я упомянул, что писал сценарий с ping, вот тот:

from subprocess import *
network = '10.42.0.'
for num in range(255):
    i = str(num)
    dn = open('/dev/null','w')
    try:
        print('checking ' + network + i)
        check_call(['ping', '-c','1', '-W',
                    '1','-q',network + i],stdout=dn)
    except CalledProcessError:
        pass
        #print('10.42.0.' + i + ' is down')
    else:
        print('>>> ' + network + i + ' is up')

Это проверит с помощью ping-запросов диапазон 256 адресов моей сети ( 10.42.0.x ), и укажите, какой из хостов произошел. Ping испытывает таймаут после 1 секунды поэтому потребуется 256 секунд для сканирования всего. Если у Вас только есть одна малина, можно отредактировать сценарий, чтобы выйти, если IP отвечает на ping, таким образом ускоряя процесс. Вы могли также создать определенное число потоков. arp-scan однако все еще остается более быстрой альтернативой.

5
ответ дан 23 November 2019 в 07:48

Возможно, эта ссылка может быть полезной: https://www.raspberrypi.org/documentation/remote-access/ip-address.md

базовая часть:

Установка nmap:

apt-get install nmap

Выполняют сканирование ping:

nmap -sn <your-subnet>

, Например:

nmap -sn 192.168.1.0/24

Затем у Вас будет вывод подобным этому:

Starting Nmap 6.40 ( http://nmap.org ) at 2014-03-10 12:46 GMT
Nmap scan report for hpprinter (192.168.1.2)
Host is up (0.00044s latency).
Nmap scan report for Gordons-MBP (192.168.1.4)
Host is up (0.0010s latency).
Nmap scan report for ubuntu (192.168.1.5)
Host is up (0.0010s latency).
Nmap scan report for raspberrypi (192.168.1.8)
Host is up (0.0030s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.41 seconds

Иногда я использую также мобильное приложение, если Wi-Fi доступен: https://play.google.com/store/apps/details? id=ua.com.streamsoft.pingtools

1
ответ дан 23 November 2019 в 07:48

Другие вопросы по тегам:

Похожие вопросы: