Czy istnieje polecenie systemu Linux, które pozwala mi uzyskać adres MAC mojego routera?
command-line
networking
użytkownik4650183
źródło
źródło
Odpowiedzi:
Lubię one-liner:
arping
pokazuje MAC powiązany z domyślnym adresem IP bramy z wyjściaip route show match 0/0
, parsowany przezawk
.źródło
iwconfig | grep "Access Point"
poleceniem. Myślę, że ta, która była wyłączona przez drugą, była buforowaną wersją połączenia przewodowego, którą odłączyłem, aby upewnić się, że otrzymuję trasę bezprzewodową.Nie używaj przestarzałych poleceń
ifconfig
(8),arp
(8) lubroute
(8). Użyj nowego polecenia, które je zastąpi i może zrobić więcejip
(8).Użyj,
ip route list
aby zobaczyć, którydefault
router ma urządzenie. Powinna to być linia, która zaczyna się oddefault
(lub0.0.0.0
) i ma adres IP routera po. Jeśli używa IPv6, wystarczy dodać-6
przełącznikip -6 route list
.Aby zobaczyć adres MAC
default
routera Adres IP, użyjip neigh
i wyszukaj wiersz z adresem IP i adresem MAC polladdr
.źródło
Jeśli nie znasz adresu IP routera, najprawdopodobniej jest to brama, którą możesz uzyskać z
route
polecenia :Zwróć uwagę na linię z flagami
UG
. Adres wGateway
kolumnie tego wiersza jest tym, czego szukasz. Następnie postępuj zgodnie z sugestią 2707974 za pomocąarp -n
( pinguj adres IP, jeśli nie pojawi się na początku) i znajdź pasującą linię:Tutaj byłby MAC twojego routera
00:11:22:33:44:55
.źródło
arp -n | grep `route -n | awk '/UG/{print $2}'` | awk '{print $3}'
Oto jedna wkładka, która działa w
dash
,bash
izsh
:ip -4 route list 0/0
zwraca coś takiego:otrzymujemy IP z tej linii jako trzecie pole
cut
i linię grep zawierającą ten adres IP i natychmiastową przestrzeń po nim z wyjścia sąsiedztwa sieci. (wymagana jest spacja, aby uniknąć dopasowania192.168.0.1
z192.168.0.10
), dopasowana linia wyglądałaby następująco:źródło
echo ${info[5]^^}
Nie jest to kompletne rozwiązanie, ale sprawdzasz arp -n.
źródło
ping 192.168.0.1
To ulepszona wersja odpowiedzi Griefa. Możliwe jest, że lista tras 0/0 dla ip -4 zwraca więcej niż jedną linię (IP), w takim przypadku kompletna jedna linijka nie działa. Tak więc poniższa zmodyfikowana wersja używa tylko pierwszego wiersza, który zwraca lista tras 0/0 dla ip -4.
źródło