Yönlendiricimin MAC adresini nasıl edinebilirim?


13

Yönlendiricimin MAC adresini almama izin veren bir Linux komutu var mı?


1
hangisi? yönlendiricinizin iletişimin her iki tarafı için (gelen / giden) birden fazla mac adresi olmalıdır.
mchid

Bu Süper Kullanıcı'da mı olmalı?

Yanıtlar:


6

Tek gömlekleri severim:

arping -f -I $(ip route show match 0/0 | awk '{print $5, $3}')

arping, ip route show match 0/0tarafından ayrıştırılan çıkışından varsayılan ağ geçidi IP adresiyle ilişkili MAC'yi gösterir awk.


Bunu (ve diğer cevapları) denedim. İyi bilgi veriyorlar, ancak gösterilen MAC adresi aradığımdan iki basamakla kapandı. Yazıcım aynı SSID'ye (muhtemelen konuk ve düzenli) sahip iki yönlendirici listeliyor ve MAC adresine göre seçmemi istiyor. Bu cevap askubuntu.com/a/222553iwconfig | 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.
hlongmore

10

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 listhangi defaultyö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, -6anahtarı eklemeniz yeterlidir ip -6 route list.

default via 192.168.11.1 dev eth0  proto static 

defaultYö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

4

Eğer yönlendirici IP bilmiyorsanız, bunu alabilirsiniz büyük olasılıkla kapısıdır gelen routekomutu :

$ 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 Gatewaysatı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.


2
Karşılık gelen tek astarlı:arp -n | grep `route -n | awk '/UG/{print $2}'` | awk '{print $3}'
Falko

3

Burada çalışan tek satırlık olduğunu dash, bashve zsh:

ip neigh|grep "$(ip -4 route list 0/0|cut -d' ' -f3) "|cut -d' ' -f5|tr '[a-f]' '[A-F]'
  1. 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

  2. IP'yi bu alandan üçüncü alan olarak cutve bu IP'yi içeren grep hattı ve ağ komşusunun çıkışından hemen sonra alan alırız . ( 192.168.0.1ile 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

  3. Şimdi beşinci alanı alıp büyük harf yapıyoruz:

    CA: FE: BA: BE: BE AF


2
Biraz daha fazla açıklama, geri kalanınızın senaryonuzu anlamamıza yardımcı olur!
George Udosen

1
Son satırda, bir değişkeni büyük harfe genişleten bir Bash özelliği var:echo ${info[5]^^}
David Foerster

1
@DavidFoerster Taşınabilir bir komut yazmak istedim ama orijinal varyant zsh'a (birinden) özgü dizi indekslemesine dayanıyordu, bu yüzden cevabı en popüler üç kabuk arasındaki taşınabilir varyantla güncelledim
Grief

2

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

Bu, bilgisayardaki arabirimlerin MAC adresini değil yönlendiriciyi almıyor mu?
Wilf

2
Yönlendiricinize ping ping 192.168.0.1
atıyorsanız

teşekkürler @ 2707974 ama ben hiçbir mac adresi hiçbir adresi ip khnow yok ve bana sadece IP adresi veya benim yönlendirici mac mac adresi veren bir komut istiyorum çünkü ben tüm arp için bir komut dosyası python komutunu kullanmak istiyorum tablo benim için yararlı değil.
user4650183

2

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]'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.