Yönlendiricimin MAC adresini almama izin veren bir Linux komutu var mı?
Yönlendiricimin MAC adresini almama izin veren bir Linux komutu var mı?
Yanıtlar:
Tek gömlekleri severim:
arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')
arping
, ip route show match 0/0
tarafından ayrıştırılan çıkışından varsayılan ağ geçidi IP adresiyle ilişkili MAC'yi gösterir awk
.
iwconfig | grep "Access Point"
komutuyla birlikte listelenen ikisinden birini veriyor . Ben iki tarafından kapalı olanı ben kablosuz rota alıyorum emin olmak için fişi takılı kablolu bağlantı önbelleğe alınmış sürümü olduğunu düşünüyorum.
Eski ifconfig
(8), arp
(8) veya route
(8) komutlarını kullanmayın . Bunların yerine geçen ve daha fazlasını yapabilen yeni komutu kullanın, ip
(8).
Makinenizin ip route list
hangi default
yönlendiriciye sahip olduğunu görmek için kullanın . Bu, default
(veya 0.0.0.0
) ile başlayan ve daha sonra yönlendiricinin IP adresine sahip bir hat olmalıdır . IPv6 kullanıyorsanız, -6
anahtarı eklemeniz yeterlidir ip -6 route list
.
default via 192.168.11.1 dev eth0 proto static
default
Yönlendiricilerin IP adresinin MAC adresini görmek için ip neigh
, IP adresini ve MAC adresini içeren satırı kullanın lladdr
.
192.168.11.1 dev eth0 lladdr 1c:af:f7:XX:XX:XX REACHABLE
Eğer yönlendirici IP bilmiyorsanız, bunu alabilirsiniz büyük olasılıkla kapısıdır gelen route
komutu :
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
Bayrakları içeren satırı not edin UG
. Bu Gateway
satırın sütunundaki adres, aradığınız adrestir . Sonra izleyin 2707974 önerisini ile arp -n
(ilk başta görünmüyor eğer IP ping) ve eşleşen satırı bulun:
$ arp -n
Address HWtype HWaddress Flags Mask Iface
192.168.0.1 ether 00:11:22:33:44:55 C eth0
192.168.0.2 ether 66:77:88:99:aa:bb C eth0
Burada, yönlendiricinizin MAC'i olurdu 00:11:22:33:44:55
.
arp -n | grep `route -n | awk '/UG/{print $2}'` | awk '{print $3}'
Burada çalışan tek satırlık olduğunu dash
, bash
ve zsh
:
ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
ip -4 route list 0/0
gibi bir şey döndürür:
192.168.0.1 dev eth1 proto statik metrik 100 üzerinden varsayılan
IP'yi bu alandan üçüncü alan olarak cut
ve bu IP'yi içeren grep hattı ve ağ komşusunun çıkışından hemen sonra alan alırız . ( 192.168.0.1
ile eşleşmeyi önlemek için boşluk gerekir 192.168.0.10
), eşleşen satır şöyle olur:
192.168.0.1 dev eth1 lladdr ca: fe: ba: be: be: af ULAŞILABİLİR
CA: FE: BA: BE: BE AF
echo ${info[5]^^}
Tam bir çözüm değildir, ancak arp -n'yi kontrol edersiniz.
ddd@mmm ~ $ arp -n
Address HWtype HWaddress Flags Mask Iface
xxx.xxx.xxx.xxx ether 00:e0:1e:b4:12:42 C eth0
yyy.yyy.yyy.yyy ether 00:14:78:52:28:d2 C wlan0
ping 192.168.0.1
Bu Grief'in cevabının geliştirilmiş bir versiyonudur. 0/0 ip -4 yol listesinin birden fazla satır (IP) döndürmesi mümkündür, bu durumda komple bir astar çalışmaz. Bu nedenle, aşağıdaki değiştirilmiş sürüm yalnızca ip -4 yol listesinin 0/0 döndürdüğü ilk satırı kullanır.
ip neigh|grep "$(ip -4 route list 0/0|head -1|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'