Як дізнатися IP-адреси інших комп'ютерів у моїй мережі?


51

Скажіть, у мене два комп’ютери, підключені до однієї мережі. Я знаю, що з увімкненого computer1 та обміну файлами я можу проглядати всередині комп'ютера2. Але скажіть, що на комп'ютері2 є щось цікаве, до якого ви отримуєте доступ, ввівши localhost: 9091 в сафарі. (наприклад, веб-інтерфейс передачі). Для доступу до цього мені доведеться набрати ip_address_of_computer2: 9091 на комп'ютері1.

Але як я можу дізнатися ip-адресу computer2 без використання computer2?


Чи знаєте ви ім'я computer2?
користувач151019

Відповіді:


82

Спосіб №1

Найпростішим способом було б отримати доступ до сторінки адміністратора мережевого маршрутизатора. Він буде мати інформацію про будь-які інші пристрої в мережі, включаючи IP-адресу.

Спосіб №2

Якщо ви знаєте мережеве ім'я комп'ютера, ви можете pingце зробити в Терміналі. Він поверне ІР-адресу комп’ютера.

Метод №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-адресою будь-якого пристрою в мережі, здатного реагувати на pings.

Спосіб №4

Останній трюк - використовувати команду термінала arp -a. Це покаже IP-адресу та MAC-адресу всіх пристроїв у мережі, про які вона знає.

Останні два хитрощі люб'язно надано цій статті Macworld.


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

Чомусь pinging 192.168.1.255 повертає адреси з усіх Macs у мережі, але жодна з машин Linux?!? Чудова порада, хоча!
ssc

1
ping SOME-PC -4щоб перешкодити вирішенню IPV4.
Накілон

Це працює, якщо ваш комп'ютер працює з Windows?
Cullub

1
@cullub Так, він працює у Windows. ping adminPCпереносить комп'ютер адміністратора і відображає IP-адресу. І як прокоментував Nakilon, ping adminPC -4відображається IPv4.
Лаки

19

Введіть команду

  arp -a

Це покаже вам всі з'єднання по одному.


Схоже, це не працює для деяких пристроїв. Я не впевнений, чи це тому, що пристрої не "слухають", чи це через різні ОС, але я намагаюся зараз, і arp -aне збираю жодної з моїх скриньок для Linux.
Джексонкр

Перший раз, коли ви переходите на розмову з іншим пристроєм на своєму комп’ютері, ваш комп'ютер повинен вирішити IP -> MAC, і він транслює "хто має IP xxx.yyy.zzz.aaa?", І власник цього IP відповідає ( транслює) з "я!", і звичайно, що пакет має в ньому джерело MAC. Якщо ця транзакція не відбулася, поки ваш пристрій знаходився в мережі, у неї не буде запису ARP. Отже: не всі пристрої відображаються в таблиці ARP, але можуть відображатися в таблицях ARP інших пристроїв.
Харв

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

Перше поле лівих вирівняних ліній - це імена мережевого інтерфейсу. Ви, мабуть, Wi-Fi en0. My TunnelBlick VPN для AWS є utun1. Мої системні налаштування> Обмін> Інтернет-обмін, створений bridge100для RaspberryPi. У мене є доступ до Інтернету з мого MacBook Pro через мій ethernet ключ.

Припустимо, IPv4

Оскільки ви просили IP-адреси, я вважаю, що IPv4-адреси - це те, що вам важливо. Я використовував "inet" (з пробілом) для блокування записів "inet6" для IPv6. Якщо ви хотіли IPv6, ви, мабуть, знаєте більше про мережу, ніж я, і я повинен вам задавати питання.

Знайдіть господарів

Давайте зосередимось на цьому bridge100і принесемо вам трохи трафіку Google. Багато людей стикаються з цією ситуацією, коли вони хочуть SSH або RDC перетворитись на безголівковий комп'ютер (наприклад, RaspberryPi ) або в свою мережу, або прив’язаний через Інтернет-обмін . Особливо складно, коли у вас немає історії з'єднань (арп-таблиця) з пристроєм. Для цього можна скористатися sudo nmap -sn 192.168.3.0/24значенням Bridge100 inet (192.168.3.1), остання цифра замінена на "0/24". Однак nmap не є стандартним для OSX, тому ми можемо встановити його з домашньою мовою .

$ 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 чомусь отримав IP-адресу 192.168.3.6. Востаннє, коли я це з'єднав, я був у іншій підмережі, і він отримав 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. Перевага полягає в тому, що якщо ваш хост не відповість на зонди ping, 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/obthing-computer-name-from-ip-address.html


1
Ласкаво просимо в "Запитайте різних"! Хоча це посилання може відповісти на питання, краще включити сюди суттєві частини відповіді та надати посилання для довідки. Відповіді лише на посилання можуть стати недійсними, якщо пов’язана сторінка зміниться.
гр

0

Ви можете встановити Wireshark і почати сканування на вашій мережевій карті.

Відфільтруйте результат по "nbns", і ви побачите IP-адресу у верхньому вікні.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.