Woher kenne ich die IP-Adressen anderer Computer in meinem Netzwerk?

51

Angenommen, ich habe zwei Computer mit demselben Netzwerk verbunden. Ich weiß, dass ich von Computer1 und aktivierter Dateifreigabe in Computer2 herumschnüffeln kann. Angenommen, auf computer2 befindet sich etwas Interessantes, auf das Sie zugreifen können, indem Sie localhost: 9091 in safari eingeben. (zB Web-Benutzeroberfläche der Übertragung). Um darauf zuzugreifen, müsste ich die ip_address_of_computer2: 9091 auf computer1 eingeben.

Aber wie finde ich die IP-Adresse von Computer2 heraus, ohne Computer2 zu verwenden?

Esel Kong
quelle
Kennen Sie den Namen von computer2?
user151019

Antworten:

82

Methode 1

Der einfachste Weg wäre, auf die Administrationsseite Ihres Netzwerk-Routers zuzugreifen. Es enthält Informationen zu allen anderen Geräten im Netzwerk, einschließlich der IP-Adresse.

Methode # 2

Wenn Sie den Netzwerknamen des Computers kennen, können Sie pingihn im Terminal eingeben. Es wird die IP-Adresse des Computers zurückgegeben.

Methode # 3

Wenn Sie den Netzwerknamen des Computers nicht kennen, können Sie einen weiteren Trick anwenden ping. Finden Sie Ihre IP-Adresse und Ihre Subnetzmaske. Beide sollten in der Systemeinstellung "Netzwerk" angezeigt werden. Richten Sie Ihre IP-Adresse und Ihre Subnetzmaske aus und ersetzen Sie alle 0Werte in der Subnetzmaske durch 255die gleiche relative Position der IP-Adresse. Wenn Sie beispielsweise die folgende IP-Adresse bzw. Subnetzmaske haben:

192.168.1.151

255.255.255.0

Befindet 0sich im letzten Feld der Subnetzmaske, ersetzen Sie das letzte Feld der IP-Adresse mit 255und senden Sie einen Ping-Befehl:ping 192.168.1.255

Sie sollten eine Antwort mit der IP-Adresse aller Geräte im Netzwerk erhalten, die auf Pings antworten können.

Methode 4

Der letzte Trick besteht darin, den Befehl terminal zu verwenden arp -a. Hier werden die IP- und MAC-Adresse aller Geräte im Netzwerk angezeigt, die bekannt sind.

Die letzten beiden Tricks mit freundlicher Genehmigung dieses Macworld-Artikels.

michaelmichael
quelle
8
Methode 4 arp -a funktioniert nur dann, wenn der Mac bereits erfolgreich getestet wurde oder eine Verbindung zu einem Host hergestellt wurde. Versuchen Sie es selbst, indem Sie Ihren Mac neu starten und die Arptabelle anzeigen. Es wird fast leer sein. Um diese Tabelle zu nmap -sP 192.168.1.0/24
füllen,
Aus irgendeinem Grund gibt Ping 192.168.1.255 die Adressen aller Macs im Netzwerk zurück, aber keine von den Linux-Rechnern?!? Toller Tipp!
ssc
1
ping SOME-PC -4die IPV4-Auflösung zu forven.
Nakilon
Funktioniert dies, wenn Sie einen Windows-Computer anpingen?
Cullub
1
@cullub Ja, es funktioniert in Windows. ping adminPCpingt den adminPC-Computer und zeigt die IP-Adresse an. Und wie Nakilon kommentierte, ping adminPC -4zeigt das IPv4.
Lucky
19

Geben Sie den Befehl ein

  arp -a

Dies zeigt Ihnen alle Verbindungen nacheinander.

user2634333
quelle
Dies scheint bei einigen Geräten nicht zu funktionieren. Ich bin nicht sicher, ob es daran liegt, dass die Geräte nicht "lauschen" oder ob es an verschiedenen Betriebssystemen liegt, aber ich versuche es jetzt und arp -anehme keine meiner Linux-Boxen in die Hand.
Jacksonkr
Wenn Sie zum ersten Mal mit einem anderen Gerät auf Ihrem Computer kommunizieren, muss Ihr Computer IP -> MAC auflösen und sendet daher "who has IP xxx.yyy.zzz.aaa?", Und der Besitzer dieser IP antwortet ( Broadcasts) mit "me!", und natürlich enthält dieses Paket eine Quell-MAC. Wenn diese Transaktion nicht stattgefunden hat, während sich Ihr Gerät im Netzwerk befand, ist kein ARP-Eintrag dafür vorhanden. Daher: Nicht alle Geräte werden in der ARP-Tabelle angezeigt, möglicherweise jedoch in den ARP-Tabellen anderer Geräte.
Harv
4

F: Woher kenne ich die IP-Adressen anderer Computer in meinem Netzwerk ?

Viele Netzwerke

Nun, zuallererst ist Ihr Computer wahrscheinlich in vielen Netzwerken . Sie können dies mit dem ifconfigBefehl sehen. Es gibt viele Informationen, aber das meiste ist überwältigend. Ich filtere gerne so:

$ 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

Das erste Feld der linksbündigen Zeilen enthält die Namen der Netzwerkschnittstelle. Sie wifi ist wahrscheinlich en0. Mein TunnelBlick VPN zu AWS ist utun1. Meine Systemeinstellungen> Freigabe> bridge100Für das RaspberryPi erstellte Internetfreigabe Ich empfange das Internet von meinem MacBook Pro über meinen Ethernet-Dongle.

Angenommen, IPv4

Da Sie nach IP-Adressen gefragt haben, gehe ich davon aus, dass Ihnen IPv4-Adressen am Herzen liegen. Ich habe "inet" (mit einem Leerzeichen) verwendet, um die "inet6" -Einträge für IPv6 zu blockieren. Wenn Sie IPv6 wollten, wissen Sie wahrscheinlich mehr über Netzwerke als ich und ich sollte Ihnen Fragen stellen.

Finde die Gastgeber

Konzentrieren wir uns darauf bridge100und bringen Ihnen ein wenig Google-Traffic. Viele Menschen geraten in diese Situation, wenn sie SSH oder RDC in einen kopflosen Computer (wie einen RaspberryPi ) in ihrem Netzwerk oder über Internet Sharing einbinden möchten . Es ist besonders schwierig, wenn Sie keinen Verbindungsverlauf (Arptabelle) mit dem Gerät haben. Hierfür können Sie sudo nmap -sn 192.168.3.0/24den Wert von bridge100 inet (192.168.3.1) verwenden, wobei die letzte Ziffer durch "0/24" ersetzt wird. Allerdings ist nmap unter OSX kein Standard, sodass wir es mit Homebrew installieren können .

$ 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

Daraus kann man schließen, dass mein RaspberyPi 192.168.3.6aus irgendeinem Grund eine IP-Adresse hat . Das letzte Mal, als ich es angeschlossen habe, war ich in einem anderen Subnetz und es wurde 192.168.2.3. Dieser nmap-Trick ist viel besser als das Tippen ping 192.168.3.2... ping 192.168.3.6bis Sie ihn finden.

Ich hoffe das hilft.

Bruno Bronosky
quelle
3

Es gibt einige andere Tools, die noch nicht erwähnt wurden, um IP-Adressinformationen zu ermitteln, vorausgesetzt, Sie haben den Hostnamen und verwenden mDNS (auch bekannt als Bonjour in Mac-Umgebungen). Sofern Sie nichts anderes konfiguriert haben, haben Ihre lokalen Netzwerknamen die Form host-name.local, nach der Sie in Ihrem ersten Beispiel suchen würdencomputer2.local

Der Erste:

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

Zum Beispiel:

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

Ein weiteres nützliches Tool ist dig(versuchen Sie es dig google.comzum Beispiel), mit dem mit ein paar speziellen Parametern die mDNS-Knoten Ihres lokalen Netzwerks abgefragt werden können.

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

Um nur die IP-Adresse herauszufinden dig, können Sie versuchen:

    % dig +short @224.0.0.251 -p 5353 <host-name>.local
KenB
quelle
Gut, aber es ist erforderlich, die IP-Adresse oder den Multicast-DNS-Namen des Computers (.local) zu kennen.
Florian Bidabe
BonjourBrowser ist eine nette GUI-Anwendung dafür.
Florian Bidabe
@FlorianBidabe - Warum müssen Sie die IP-Adresse kennen, um diese Befehle verwenden zu können? Diese Befehle geben die IP-Adresse des angegebenen Computers zurück. Ja, es ist erforderlich, den Namen des Zielcomputers zu kennen, um diese Methode verwenden zu können.
KenB
3

Dieses Skript sollte Ihnen schnell das liefern, wonach Sie suchen, und erfordert die Installation von nmap. Der Vorteil ist, dass nmap den Host immer noch findet, wenn Ihr Host nicht auf Ping-Tests antwortet, während andere Tools dies nicht tun.

#!/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"

Speichern Sie dieses Skript als lookup.shund rufen Sie es (mit Umschaltung auf Englisch) mit auf

LANG=c bash lookup.sh
Florian Bidabe
quelle
Wie speichern und starten Sie das?
Daniel Pendergast
Sie fügen dies in TextEditor ein und speichern und benennen diese Datei "qnmap". Anschließend verschieben Sie diese Datei nach / usr / bin (Halten Sie Befehlstaste + Umschalttaste + G oder Finder / Go / Gehe zu Ordner: / usr / bin). Öffnen Sie das Terminal und geben Sie "sudo chmod a + x / usr / bin / qnmap" ein. Tippe "qnmap" in das Terminal und warte auf das Ergebnis.
Florian Bidabe
Okay. Ich bekomme diesen Fehler: /usr/bin/qnmap: line 2: =en1: command not foundEs sieht aus wie das Dollarzeichen, bevor das inicht da sein sollte.
Daniel Pendergast
1
Entschuldigung, Dan, meine schlechte, die Zeile sollte lauten: i = "en1"
Florian Bidabe
Cool. Es funktioniert gut
Daniel Pendergast
2

Sie können auch netstat verwenden, um Netzwerkadressen anzuzeigen:

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
user8128167
quelle
0

Sie können Wireshark installieren und einen Scan auf Ihrer Netzwerkkarte starten.

Filtern Sie das Ergebnis nach "nbns" und Sie sehen die IP-Adresse im oberen Fenster.

rubo77
quelle