Mam garść komputerów Mac w sieci domowej i mam dostęp do powłoki tylko do jednego z zewnątrz. Jak mogę dowiedzieć się, jaki jest adres IP innych komputerów?
Mam garść komputerów Mac w sieci domowej i mam dostęp do powłoki tylko do jednego z zewnątrz. Jak mogę dowiedzieć się, jaki jest adres IP innych komputerów?
Odpowiedzi:
Spróbuj arp -a
zobaczyć aktualną tabelę arp komputera. Wyświetli tylko te adresy IP, z którymi komputer współpracował. Dane wyjściowe takie (trochę zasłoniły, aby ukryć adresy MAC w mojej sieci):
$ 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]
Jeśli nie masz dodatkowych informacji na temat tego, który komputer jest, możesz uzyskać nieco więcej informacji, identyfikując producentów kart sieciowych poprzez wyszukiwanie adresu MAC .
arp -a
pokaże tylko te adresy IP, z którymi komputer współpracował”. ? Czy powinienem najpierw pingować transmisję (192.168.110.255) i uzyskać odpowiedź z każdego urządzenia, a następnie użyć arp, aby uzyskać pełną listę, ponieważ właśnie współdziałałem / pingowałem całe urządzenie?
Zakładając, że wszystkie inne maszyny znajdują się w tej samej domenie rozgłoszeniowej, co ta, do której masz dostęp, często wystarczy pingowanie adresu rozgłoszeniowego. Nie znajdzie maszyn, które śpią, ani tych skonfigurowanych, aby nie reagować na pingi, ani tych, które będą reagować na pingi, ale nie będą transmitować pingów.
% 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
Pierwszą i ostatnią odpowiedzią prawie zawsze będzie lokalna maszyna. Te (DUP!)
reakcje są z innych komputerów (choć ten przykład pokazuje również pewne urządzenie reaguje z adresem samej audycji, która nie jest strasznie przydatne).
Możesz także wypróbować adres emisji dla wszystkich:
% 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
Ten przykład pokazuje mniej cruft. Wszystkie (DUP!)
s to inne maszyny, a lokalną maszynę można łatwo zidentyfikować jako 127.0.0.1.
Wszystkie komputery Mac mają nazwy hostów, więc nie musisz znać adresów IP. Zamiast tego użyjesz tylko nazwy hosta.
Nazwy hostów zależą od nazwy komputera. Jeśli więc komputer ma nazwę „Jon's Mac”, nazwa hosta, której użyjesz, będzie przypominać „jons-mac.local”.
$ ssh jons-mac.local
Jeśli nie znasz jeszcze nazw hostów swoich komputerów, możesz znaleźć nazwy hostów komputerów w preferencjach udostępniania na tym komputerze lub możesz znaleźć nazwy hostów innych komputerów w sieci za pomocą polecenia dns-sd. To polecenie używa Bonjour do przeglądania usług sieciowych; znajdziesz tylko komputery, które faktycznie reklamują jakąś usługę sieciową (które w zasadzie są jedynymi, na których Ci zależy).
Jeśli chcesz połączyć się z komputerem obsługującym ssh, możesz znaleźć dostępne komputery za pomocą:
dns-sd -B _ssh._tcp .
Ogólnie można wyszukiwać hosty świadczące określone usługi przy użyciu nazw usług: http://www.dns-sd.org/ServiceTypes.html
Protokół Bonjour umożliwia także przeglądanie wszystkich usług, a nie tylko konkretnych. Możesz to zrobić, przeglądając specjalną usługę_services._dns-sd._udp
dns-sd -B _services._dns-sd._udp .
Pytanie dotyczy znalezienia innych komputerów w sieci z wiersza polecenia, ale można także przeglądać reklamowane usługi dns-sd w graficznym interfejsie użytkownika. Na przykład Terminal.app> Nowe połączenie zdalne ... wyświetla okno, w którym wyświetlane są reklamowane usługi ssh, sftp, ftp i telnet.
dns-sd -B _ssh._tcp .
uruchomienia tego polecenia ?
Możesz spróbować użyć dns-sd
, aby wykonać zapytania Bonjour w sieci LAN.
dns-sd -B _ssh._tcp .
Może to trochę przesada, ale możesz użyć nmap
Szybki liniowy interfejs CLI do przejścia przez / 24 ping podsieci dla każdego adresu IP. Szybko i trochę brudno, ale działa.
for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done
Objaśnienie: Aby zmienić zakres, zmień x = 1 na x = 130 lub cokolwiek, od czego chcesz zacząć, a 254 do końca, powiedz 135.
for (( x=130; x <= 135; x++ ));
ping -c 3 wysyła trzy pingi. Aby zmienić liczbę pingów, zmień 3 na coś innego, a aby zmienić zakres adresów, zmień 192.168.0 na coś innego.
do ping -c 30 10.10.0.$x;
fping -ag 172.16.0.0/16
Jeśli znasz nazwę innych komputerów w sieci LAN, najprostszym sposobem jest pingowanie ich:
$ 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
Może to zależeć od lokalnego routera lub serwera DHCP. Jeśli goła nazwa hosta nie działa, spróbuj dodać .local (tj. Ping hostname.local ).
Oczywiście nie działa to dobrze w przypadku dużych sieci LAN lub osób ze słabymi wspomnieniami.
Jeśli używasz komputerów Mac (zakładając 10.5 lub nowszy), po prostu włącz VNC dla dostępu do pulpitu i użyj Flame.app.
To naprawdę miłe, małe narzędzie, które naprawdę szybko zapewnia dokładnie to, czego potrzebujesz. Jedyne, co musisz zrobić, to pójść dalej niż SSH.
Dla Windowsa:
1) Napisz: dla / L% I in (1,1,254) DO ping -w 30 -n 1 168.29.0.% I Spowoduje to ping wszystkich adresów w sieci lokalnej
2) Następnie napisz: arp -a To da ci wszystkie adresy, które odpowiedziały