Как узнать IP-адреса других компьютеров в моей сети?


51

Скажем, у меня есть два компьютера, подключенных к одной сети. Я знаю, что с компьютера1 и общего доступа к файлам я могу шпионить внутри компьютера2. Но скажите, что на компьютере 2 есть что-то интересное, к которому вы можете обратиться, набрав localhost: 9091 в safari. (например, веб-интерфейс передачи). Чтобы получить доступ к этому, мне нужно будет ввести ip_address_of_computer2: 9091 на компьютере1.

Но как узнать IP-адрес computer2 без использования computer2?


Знаете ли вы имя computer2?
user151019

Ответы:


82

Способ № 1

Самый простой способ - получить доступ к странице администрирования вашего сетевого маршрутизатора. Он будет иметь информацию о любых других устройствах в сети, включая IP-адрес.

Способ № 2

Если вы знаете сетевое имя компьютера, вы можете использовать pingего в Терминале. Он вернет IP-адрес компьютера.

Способ № 3

Если вы не знаете сетевое имя компьютера, вы можете воспользоваться другим приемом ping. Найдите свой IP-адрес и маску подсети. Оба должны быть видны на панели настроек сети в Системных настройках. Совместите свой IP-адрес и маску подсети и замените все 0значения в маске подсети 255тем же относительным положением IP-адреса. Например, если у вас есть следующие IP-адрес и маска подсети соответственно:

192.168.1.151

255.255.255.0

Значение 0находится в последнем поле маски подсети, поэтому вы заменяете последнее поле IP-адреса 255и проверяете его:ping 192.168.1.255

Вы должны получить ответ с IP-адресом любого устройства в сети, способного отвечать на эхо-запросы.

Метод № 4

Последний трюк заключается в использовании команды терминала arp -a. Это покажет IP и MAC-адрес всех устройств в сети, о которых он знает.

Последние две уловки любезно предоставлены этой статьей Macworld.


8
Метод № 4 arp -a будет работать, если и только если Mac уже успешно исследован или подключен к хосту. Попробуйте сами, перезагрузив Mac и отобразив таблицу arp. Это будет почти пусто. Чтобы заполнить эту таблицу, вам нужно выполнить что-то вроде ping-сканирования:nmap -sP 192.168.1.0/24
ripat

По какой-то причине pinging 192.168.1.255 возвращает адреса со всех компьютеров Mac в сети, но ни с одного из компьютеров Linux?!? Отличный совет, хотя!
ССК

1
ping SOME-PC -4для утверждения IPV4.
Накилон

Это работает, если вы пингуете компьютер с Windows?
Cullub

1
@cullub Да, это работает в Windows. ping adminPCпингует компьютер adminPC и отображает IP-адрес. И, как прокомментировал Накилон, ping adminPC -4отображает IPv4.
Счастливчик

19

Введите команду

  arp -a

Это покажет вам все соединения по одному.


Это не работает для некоторых устройств. Я не уверен, что это из-за того, что устройства не «слушают» или из-за разных ОС, но сейчас я пробую это и arp -aне собираю один из моих linux-боксов.
Джексонкр

При первом обращении к другому устройству на вашем компьютере ваш компьютер должен разрешить IP -> MAC, и поэтому он передает «у кого есть IP xxx.yyy.zzz.aaa?», И владелец этого IP отвечает ( вещает) со "мной!", и, конечно, этот пакет имеет исходный MAC. Если эта транзакция не состоялась, когда ваше устройство находилось в сети, для него не будет записи ARP. Следовательно: не все устройства отображаются в таблице ARP, но могут отображаться в таблицах ARP других устройств.
Harv

4

В: Как мне узнать IP-адреса других компьютеров в моей сети ?

Много сетей

Ну, во-первых, ваш компьютер, вероятно, находится во многих сетях . Вы можете увидеть это с помощью ifconfigкоманды. Там много информации, но большая ее часть просто подавляющая, поэтому мне нравится фильтровать примерно так:

$ ifconfig | grep -E '^[a-z0-9]|inet '

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
    inet 127.0.0.1 netmask 0xff000000
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.0.101 netmask 0xffffff00 broadcast 192.168.0.255
en1: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
en2: flags=963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX> mtu 1500
p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
awdl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1484
bridge0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.2.1 netmask 0xffffff00 broadcast 192.168.2.255
utun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 2000
utun1: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
    inet 172.141.0.10 --> 172.141.0.9 netmask 0xffffffff
en5: flags=8963<UP,BROADCAST,SMART,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
    inet 169.254.146.193 netmask 0xffff0000 broadcast 169.254.255.255
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
    inet 192.168.3.1 netmask 0xffffff00 broadcast 192.168.3.255

Первое поле выровненных по левому краю строк - это имена сетевых интерфейсов. У тебя вайфай это наверное en0. Мой TunnelBlick VPN для AWS есть utun1. Мои Системные настройки> Общий доступ> Общий Интернет, созданный bridge100для RaspberryPi Я получаю Интернет с моего MacBook Pro через мой сетевой адаптер.

Предположим, IPv4

Поскольку вы спрашивали IP-адреса, я предполагаю, что IPv4-адреса - это то, что вас волнует Я использовал «inet» (с пробелом), чтобы заблокировать записи «inet6» для IPv6. Если вы хотели IPv6, вы, вероятно, знаете больше о сети, чем я, и я должен задавать вам вопросы.

Найти хозяев

Давайте сосредоточимся на этом bridge100и принесем вам немного трафика Google. Многие сталкиваются с такой ситуацией, когда хотят подключиться по SSH или RDC к безголовому компьютеру (например, RaspberryPi ) либо в своей сети, либо через Интернет-общий доступ . Это особенно сложно, когда у вас нет истории соединений (таблица arp) с устройством. Для этого вы можете использовать значение sudo nmap -sn 192.168.3.0/24, которое является значением bridge100 inet (192.168.3.1) с последней цифрой, замененной на «0/24». Тем не менее, nmap не является стандартным для OSX, поэтому мы можем установить его с помощью homebrew .

$ brew install nmap
Warning: nmap-7.31 already installed

$ sudo nmap -sn 192.168.3.0/24
Password:

Starting Nmap 7.31 ( https://nmap.org ) at 2016-11-21 22:03 EST
Nmap scan report for 192.168.3.6
Host is up (0.00025s latency).
Nmap scan report for 192.168.3.1
Host is up.
Nmap done: 256 IP addresses (2 hosts up) scanned in 2.08 seconds

Исходя из этого, вы можете предположить, что мой RaspberyPi 192.168.3.6по какой-то причине получил IP . В прошлый раз, когда я подключил его, я был в другой подсети, и он получил 192.168.2.3. Этот трюк с Nmap намного лучше, чем печатать ping 192.168.3.2... ping 192.168.3.6пока вы его не найдете.

Надеюсь, это поможет.


3

Есть несколько других инструментов, которые еще не были упомянуты для обнаружения информации об IP-адресе, при условии, что у вас есть имя хоста и вы используете mDNS (он же Bonjour в среде Mac). Если вы не настроили что-то по-другому, имена вашей локальной сети будут в форме, host-name.localпоэтому в вашем первоначальном примере вы бы искалиcomputer2.local

Первый:

    dscacheutil -q host -a name <host-name>.local

Например:

    % dscacheutil -q host -a name computer2.local
    name: computer2.local
    ip_address: 10.0.1.6

Еще один полезный инструмент dig( dig google.comнапример, попробуйте ), который с несколькими специальными параметрами может использоваться для запроса узлов mDNS в вашей локальной сети.

    % dig @224.0.0.251 -p 5353 <host-name>.local
    % dig @224.0.0.251 -p 5353 -x <ip-address>

Чтобы получить только IP-адрес, digвы можете попробовать:

    % dig +short @224.0.0.251 -p 5353 <host-name>.local

Хорошо, но для этого нужно знать IP-адрес или имя компьютера для многоадресной передачи (.local).
Флориан Бидабе

BonjourBrowser - хорошее приложение с графическим интерфейсом для этого.
Флориан Бидабе

@FlorianBidabe - Почему вы говорите, что вам нужно знать IP-адрес, чтобы использовать эти команды? Эти команды возвращают IP-адрес указанного компьютера. Да, для использования этого метода необходимо знать имя целевой машины.
Кенб

3

Этот скрипт должен дать вам то, что вы ищете очень быстро и требует наличия установленного nmap. Преимущество состоит в том, что если ваш хост не отвечает на пинг-зонды, nmap все равно найдет хост, а другие инструменты - нет.

#!/bin/bash
i="en1" # edit this to fit your Network interface
cidr=$(while read y; do echo ${y%.*}".0/$(m=0; while read -n 1 x && [ $x = f ]; do m=$[m+4]; done < <(ifconfig $i | awk '/mask/             {$4=substr($4,3); print $4}'); echo $m )"; done < <(ifconfig $i | awk '/inet[ ]/{print $2}') | head -n 1 | sed s/addr://g | sed 's/\/0//g')
myip=`ifconfig $i | grep "inet " | awk 'NR==1 {print $2}' | sed s/addr://g`
set -x
sudo nmap -n -T4 -PN -p9091 --exclude "$myip" "$cidr"

Сохраните этот скрипт как lookup.shи назовите его (с переключением на английский)

LANG=c bash lookup.sh

Как сохранить и запустить это?
Даниэль Пендергаст

Вы вставляете это в TextEditor, сохраняете и называете этот файл "qnmap". Затем вы перемещаете этот файл в / usr / bin (удерживайте Command + Shift + G или Finder / Go / Go в папку: / usr / bin). откройте терминал, введите «sudo chmod a + x / usr / bin / qnmap». Наберите «qnmap» в терминале и дождитесь результата.
Флориан Бидабе

Хорошо. Я получаю эту ошибку: /usr/bin/qnmap: line 2: =en1: command not foundпохоже, знак доллара, прежде чем iне должно быть там.
Даниэль Пендергаст

1
Извините, Дэн, мой плохой, строка должна быть: i = "en1"
Флориан Бидабе

Здорово. Работает хорошо.
Даниэль Пендергаст

2

Вы также можете использовать netstat для отображения сетевых адресов:

roger.moore@WKSTCAL0141 ~
$ netstat -n

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    127.0.0.1:11235        127.0.0.1:49184        ESTABLISHED
  TCP    127.0.0.1:49155        127.0.0.1:49156        ESTABLISHED
  TCP    127.0.0.1:49156        127.0.0.1:49155        ESTABLISHED
  TCP    127.0.0.1:49184        127.0.0.1:11235        ESTABLISHED
  TCP    192.168.10.131:445     192.168.10.119:52624   ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.2:60866     ESTABLISHED
  TCP    192.168.10.131:1433    192.168.10.119:52775   ESTABLISHED
  TCP    192.168.10.131:3389    192.168.10.119:54473   ESTABLISHED
  TCP    192.168.10.131:49154   192.168.10.119:52796   ESTABLISHED
  TCP    192.168.10.131:49182   192.168.10.9:52230     ESTABLISHED
  TCP    192.168.10.131:49247   192.168.10.6:445       ESTABLISHED
  TCP    192.168.10.131:49432   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49440   192.168.10.4:1106      ESTABLISHED
  TCP    192.168.10.131:49451   192.168.10.6:1025      ESTABLISHED
  TCP    192.168.10.131:55100   192.168.10.2:445       ESTABLISHED
  TCP    192.168.10.131:64558   192.168.10.20:135      TIME_WAIT
  TCP    192.168.10.131:64559   192.168.10.20:49158    TIME_WAIT
  TCP    192.168.10.131:64566   192.168.10.100:135     TIME_WAIT
  TCP    192.168.10.131:64575   192.168.10.100:59811   TIME_WAIT
  TCP    192.168.10.131:64581   192.168.10.41:139      TIME_WAIT
  TCP    192.168.10.131:64582   192.168.10.3:5357      TIME_WAIT
  TCP    192.168.10.131:64585   192.168.10.61:3910     TIME_WAIT
  TCP    192.168.10.131:64587   192.168.10.65:3910     TIME_WAIT
  TCP    192.168.10.131:64588   192.168.10.9:139       TIME_WAIT
  TCP    192.168.10.131:64589   192.168.10.135:2869    ESTABLISHED
  TCP    192.168.10.131:64593   192.168.10.6:135       TIME_WAIT
  TCP    192.168.10.131:64594   192.168.10.6:1025      TIME_WAIT
  TCP    192.168.10.131:64599   192.168.10.100:59811   TIME_WAIT

0

Если вы хотите узнать имя, используя IP: http://runakay.blogspot.com/2013/12/obtainment-computer-name-from-ip-address.html


1
Добро пожаловать, чтобы спросить другого! Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится.
Grg

0

Вы можете установить Wireshark и запустить сканирование на своей сетевой карте.

Отфильтруйте результат по «nbns», и вы увидите IP-адрес в верхнем окне.

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