Ev ağımda bir avuç Mac var ve bunlardan yalnızca birine dışarıdan kabuk erişimi var. Diğer makinelerin IP adreslerinin ne olduğunu nasıl öğrenebilirim?
Ev ağımda bir avuç Mac var ve bunlardan yalnızca birine dışarıdan kabuk erişimi var. Diğer makinelerin IP adreslerinin ne olduğunu nasıl öğrenebilirim?
Yanıtlar:
arp -a
Bilgisayarınızın geçerli arp tablosunu görmeye çalışın . Yalnızca bilgisayarınızın etkileşimde bulunduğu IP adreslerini gösterir. Bunun gibi çıktılar (ağımda MAC adreslerini gizlemek için biraz gizlenmiş):
$ 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]
Hangi bilgisayarın hangisi olduğu hakkında daha fazla bilginiz yoksa, MAC adresi araması yoluyla ağ kartı üreticilerini tanımlayarak biraz daha fazla bilgi edinebilirsiniz .
arp -a
yalnızca bilgisayarınızın etkileşimde bulunduğu IP adreslerini gösterecektir". ? Yayına (192.168.110.255) ping atıp, her cihazdan yanıt almalı mıyım ve daha sonra tüm cihazı etkilediğim / taktığımdan beri tam bir liste elde etmek için arp kullanmalı mıyım?
Diğer tüm makinelerin erişiminizdekilerle aynı yayın etki alanında olduğunu varsayarsak, yayın adresini pinglemek genellikle yeterli olacaktır. Uyuyan makineleri, ping'lere cevap vermeyecek şekilde yapılandırılmış olanları ya da ping'lere cevap verecek ancak ping yayınlayacak olanları bulamayacaklar.
% 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
İlk ve son cevap neredeyse her zaman yerel makineniz olacaktır. (DUP!)
(Bu örnek, aynı zamanda son derece yararlı değildir yayın adresi kendisi ile yanıt bir makineyi göstermektedir da) cevaplar, makineleri vardır.
Hepsi bir arada yayın adresini de deneyebilirsiniz:
% 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
Bu örnek daha az sarmal gösterir. Hepsi (DUP!)
diğer makinelerdir ve yerel makine kolayca 127.0.0.1 olarak tanımlanır.
Mac'lerde tüm ana bilgisayar adları olduğundan IP adreslerini bilmeniz gerekmez. Bunun yerine sadece ana bilgisayar adını kullanırsınız.
Ana bilgisayar adları, bilgisayara verdiğiniz herhangi bir adı temel alır. Yani bilgisayar "Jon's Mac" olarak adlandırılmışsa, kullanacağınız ana bilgisayar adı "jons-mac.local" gibidir.
$ ssh jons-mac.local
Bilgisayarlarınızın ana bilgisayar adlarını zaten bilmiyorsanız, bilgisayarın ana bilgisayar adlarını bu bilgisayardaki paylaşım tercihlerinde bulabilir veya dns-sd komutunu kullanarak ağdaki diğer bilgisayarların ana bilgisayar adlarını bulabilirsiniz. Bu komut ağ servislerine göz atmanıza izin vermek için Bonjour kullanır; yalnızca bazı ağ servislerini reklam yapan bilgisayarları (bu da büyük ve önemse de ilgilendiğiniz bilgisayarları) bulacaksınız.
Ssh sağlayan bazı bilgisayarlara bağlanmak istiyorsanız, aşağıdaki bilgisayarları kullanarak aşağıdakileri bulabilirsiniz:
dns-sd -B _ssh._tcp .
Genelde, hizmet adlarını kullanarak belirli hizmetleri sunan ana bilgisayarları arayabilirsiniz: http://www.dns-sd.org/ServiceTypes.html
Bonjour protokolü ayrıca sadece belirli olanlara değil, tüm servislere göz atma imkanı sunar . Özel servise göz atarak bunu yapabilirsiniz._services._dns-sd._udp
dns-sd -B _services._dns-sd._udp .
Soru, ağdaki diğer bilgisayarları komut satırından bulma hakkında soruyor, ancak GUI'deki dns-sd reklamı yapılan hizmetlere de göz atabilirsiniz. Örneğin, Terminal.app> Yeni Uzaktan Bağlantı ... reklamı yapılan ssh, sftp, ftp ve telnet servislerini gösteren bir pencere açar.
dns-sd -B _ssh._tcp .
çalışmasını bekleyebilirsiniz ?
dns-sd
LAN üzerinde Bonjour sorguları gerçekleştirmek için kullanmayı deneyebilirsiniz .
dns-sd -B _ssh._tcp .
Belki biraz fazladan fazlalık ama nmap kullanabilirsin
Her IP adresine ping atıp / 24 alt ağa geçiş yapmak için hızlı bir CLI bir liner. Çabuk ve kirli bir şey ama işe yarıyor.
for (( x=1; x <= 254; x++ )); do ping -c 3 192.168.0.$x; done
Açıklama: Aralığı değiştirmek için, x = 1 - x = 130 arasında veya ne ile başlamak isterseniz, 254 ile sonuna kadar değiştirin, 135 deyin.
for (( x=130; x <= 135; x++ ));
ping -c3, üç ping gönderir. Ping sayısını değiştirmek için 3'ü başka bir şey olarak değiştirin ve adres aralığını değiştirmek için 192.168.0'ı başka bir şeyle değiştirin.
do ping -c 30 10.10.0.$x;
fping -ag 172.16.0.0/16
Yerel ağdaki diğer bilgisayarların adını biliyorsanız, en basit yol onları pinglemektir:
$ 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
Bu, yerel yönlendiricinize veya DHCP sunucunuza bağlı olabilir. Çıplak ana bilgisayar adı çalışmazsa, .local eklemeyi deneyin (yani, ping hostname.local ).
Açıkçası bu, büyük LAN'lar veya hafızası iyi olmayan kişiler için iyi çalışmıyor.
Mac kullanıyorsanız (10.5 veya daha büyük olduğunu varsayarsak), masaüstü erişim için VNC'yi etkinleştirin ve Flame.app kullanın.
Gerçekten çok çabuk, tam olarak ihtiyacınız olanı veren küçük bir yardımcı programdır. Tek şey, SSH'den daha ileri gitmeniz gerektiğidir.
Pencereler için:
1) Yaz: / L% için ben (1,1,254) DO ping -w 30 -n 1 168.29.0.% I Bu, yerel ağınızdaki tüm adresleri pingleyecektir.
2) O zaman yaz: arp -a Bu size cevap veren tüm adresleri verecektir