Ich habe eine Handvoll Macs in meinem Heimnetzwerk und kann von außen nur auf einen zugreifen. Wie kann ich herausfinden, welche IP-Adresse die anderen Maschinen haben?
Ich habe eine Handvoll Macs in meinem Heimnetzwerk und kann von außen nur auf einen zugreifen. Wie kann ich herausfinden, welche IP-Adresse die anderen Maschinen haben?
Antworten:
Versuchen arp -a
Sie, die aktuelle Arptabelle Ihres Computers anzuzeigen. Es werden nur die IP-Adressen angezeigt, mit denen Ihr Computer interagiert hat. Ausgabe wie folgt (etwas verdeckt, um MAC-Adressen in meinem Netzwerk zu verbergen):
$ arp -a
? (10.1.168.1) at xx:xx:9e:82:ab:f6 on en1 ifscope [ethernet]
? (10.1.168.16) at xx:xx:29:d3:17:8 on en1 ifscope [ethernet]
? (10.1.168.115) at xx:xx:2:4f:76:14 on en1 ifscope [ethernet]
? (10.1.168.131) at xx:xx:6b:d0:36:a5 on en1 ifscope [ethernet]
? (10.1.168.134) at (incomplete) on en1 ifscope [ethernet]
? (10.1.168.137) at xx:xx:65:46:cd:b8 on en1 ifscope [ethernet]
? (10.1.168.255) at ff:ff:ff:ff:ff:ff on en1 ifscope [ethernet]
? (192.168.4.255) at ff:ff:ff:ff:ff:ff on vmnet8 ifscope [ethernet]
? (192.168.110.255) at (incomplete) on vmnet1 ifscope [ethernet]
Wenn Sie keine weiteren Informationen darüber haben, welcher Computer welcher ist, können Sie ein wenig mehr Informationen erhalten, indem Sie die Hersteller der Netzwerkkarten über die MAC-Adressensuche identifizieren .
arp -a
dass nur die IP-Adressen angezeigt werden, mit denen Ihr Computer interagiert hat ? ? Sollte ich zuerst die Sendung (192.168.110.255) pingen und eine Antwort von jedem Gerät erhalten und dann arp verwenden, um eine vollständige Liste zu erhalten, da ich gerade mit dem gesamten Gerät interagiert / gepingt habe?
Angenommen, alle anderen Computer befinden sich in derselben Broadcast-Domäne wie derjenige, auf den Sie Zugriff haben, reicht es häufig aus, die Broadcast-Adresse mit einem Ping zu versehen. Es werden keine Computer gefunden, die im Ruhezustand sind oder die so konfiguriert sind, dass sie nicht auf Pings antworten, oder solche, die auf Pings, aber nicht auf Broadcast-Pings antworten.
% ifconfig -a | grep broadcast
inet 192.168.1.241 netmask 0xffffff00 broadcast 192.168.1.255
% ping -i 5 -c 2 192.168.1.255
PING 192.168.1.255 (192.168.1.255): 56 data bytes
64 bytes from 192.168.1.241: icmp_seq=0 ttl=64 time=0.393 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=2.511 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=5.810 ms (DUP!)
64 bytes from 192.168.1.255: icmp_seq=0 ttl=64 time=7.886 ms (DUP!)
64 bytes from 192.168.1.241: icmp_seq=1 ttl=64 time=0.312 ms
--- 192.168.1.255 ping statistics ---
2 packets transmitted, 2 packets received, +3 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.312/3.382/7.886/3.010 ms
Die erste und letzte Antwort ist fast immer Ihr lokaler Computer. Die (DUP!)
Antworten stammen von anderen Computern (obwohl in diesem Beispiel auch einige Computer mit der Broadcast-Adresse selbst antworten, was nicht besonders nützlich ist).
Sie können auch die Broadcast-Adresse für alle versuchen:
% ping -i 5 -c 2 255.255.255.255
PING 255.255.255.255 (255.255.255.255): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=64 time=0.392 ms
64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=3.053 ms (DUP!)
64 bytes from 192.168.1.65: icmp_seq=0 ttl=64 time=8.685 ms (DUP!)
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.319 ms
--- 255.255.255.255 ping statistics ---
2 packets transmitted, 2 packets received, +2 duplicates, 0% packet loss
round-trip min/avg/max/stddev = 0.319/3.112/8.685/3.401 ms
Dieses Beispiel zeigt weniger Cruft. Alle (DUP!)
s sind andere Computer, und der lokale Computer kann leicht als 127.0.0.1 identifiziert werden.
Ihre Macs haben alle Hostnamen, sodass Sie die IP-Adressen nicht kennen müssen. Stattdessen verwenden Sie einfach den Hostnamen.
Die Hostnamen basieren auf dem Namen, den Sie dem Computer gegeben haben. Wenn der Computer "Jons Mac" heißt, lautet der verwendete Hostname "jons-mac.local".
$ ssh jons-mac.local
Wenn Sie die Hostnamen Ihrer Computer noch nicht kennen, können Sie die Hostnamen eines Computers in den Freigabeeinstellungen dieses Computers oder die Hostnamen anderer Computer im Netzwerk mit dem Befehl dns-sd ermitteln. Mit diesem Befehl können Sie mithilfe von Bonjour Netzwerkdienste durchsuchen. Sie werden nur Computer finden, die tatsächlich Netzwerkdienste bewerben (die im Großen und Ganzen die einzigen sind, die Sie interessieren).
Wenn Sie eine Verbindung zu einem Computer herstellen möchten, der ssh bereitstellt, können Sie die verfügbaren Computer folgendermaßen ermitteln:
dns-sd -B _ssh._tcp .
Im Allgemeinen können Sie nach Hosts suchen, die bestimmte Dienste bereitstellen, indem Sie die Dienstnamen verwenden: http://www.dns-sd.org/ServiceTypes.html
Das Bonjour-Protokoll bietet auch die Möglichkeit, nach allen Diensten zu suchen , nicht nur nach bestimmten. Sie können dies tun, indem Sie nach dem speziellen Dienst suchen_services._dns-sd._udp
dns-sd -B _services._dns-sd._udp .
Die Frage lautet, ob andere Computer im Netzwerk über die Befehlszeile gefunden werden sollen. Sie können jedoch auch die von dns-sd angekündigten Dienste in der GUI durchsuchen. Beispiel: Terminal.app> Neue Remoteverbindung ... zeigt ein Fenster mit den angekündigten Diensten ssh, sftp, ftp und telnet an.
dns-sd -B _ssh._tcp .
ausgeführt?
Sie können versuchen dns-sd
, Bonjour-Abfragen im LAN durchzuführen.
dns-sd -B _ssh._tcp .
Vielleicht ist es ein bisschen übertrieben, aber Sie könnten nmap verwenden
Ein schneller CLI-One-Liner zum Durchlaufen von / 24-Subnetz-Pings für jede IP-Adresse. Schnell und irgendwie dreckig, aber es funktioniert.
for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done
Erläuterung: Um den Bereich zu ändern, ändern Sie x = 1 in x = 130 oder was auch immer Sie beginnen möchten, und 254 bis zum Ende, sagen Sie 135.
for (( x=130; x <= 135; x++ ));
ping -c 3 sendet drei Pings. Um die Anzahl der Pings zu ändern, ändern Sie die 3 in etwas anderes, und um den Adressbereich zu ändern, ändern Sie die 192.168.0 in etwas anderes.
do ping -c 30 10.10.0.$x;
fping -ag 172.16.0.0/16
Wenn Sie den Namen der anderen Computer im LAN kennen, können Sie sie am einfachsten anpingen:
$ ping foobar
Pinging foobar.lan [192.168.0.25] with 32 bytes of data:
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Reply from 192.168.0.25: bytes=32 time<1ms TTL=64
Dies hängt möglicherweise von Ihrem lokalen Router oder DHCP-Server ab. Wenn der bloße Hostname nicht funktioniert, versuchen Sie, .local anzufügen (dh ping hostname.local ).
Offensichtlich funktioniert dies nicht gut für große LANs oder Menschen mit schlechten Erinnerungen.
Wenn Sie einen Mac verwenden (vorausgesetzt 10.5 oder höher), aktivieren Sie einfach VNC für den Desktop-Zugriff und verwenden Sie Flame.app.
Es ist ein wirklich nettes kleines Hilfsprogramm, mit dem Sie schnell genau das bekommen, was Sie brauchen. Das einzige ist, dass Sie weiter als SSH gehen müssten.
Für Windows:
1) Schreiben: für / L% I in (1,1,254) DO ping -w 30 -n 1 168,29,0.% I Damit werden alle Adressen in Ihrem lokalen Netzwerk gepingt
2) Dann schreibe: arp -a Dies gibt dir alle Adressen, die geantwortet haben