arping to narzędzie, które pinguje hosta nie protokołem ICMP, tylko zapytaniem ARP na poziomie warstwy łącza (L2). Dzięki temu sprawdzisz, czy maszyna w tej samej sieci lokalnej żyje, nawet jeśli ma zamknięty firewall blokujący zwykłego ping — bo na ARP musi odpowiedzieć każdy host, który chce w ogóle gadać po Ethernecie. Używasz go głównie do wykrywania, czy dany adres IP jest zajęty, do łapania konfliktów IP oraz do mapowania, jaki MAC siedzi pod danym adresem.
Składnia i najważniejsze opcje
Podstawowe wywołanie (wersja z pakietu iputils):
arping [-c liczba] -I iface cel
-I iface— interfejs, z którego wychodzą zapytania ARP (np.eth0). W iputils praktycznie zawsze wymagany.-c liczba— wyślij tylko tyle zapytań i zakończ (inaczej leci w nieskończoność).-f— kończ po pierwszej odpowiedzi potwierdzającej, że host żyje.-D— tryb wykrywania duplikatu adresu (DAD); zwraca kod 0, gdy nikt nie odpowiedział, czyli adres jest wolny.-w sekundy— limit czasu (deadline) na całą operację.-q— tryb cichy, bez gadania na ekran (przydatny w skryptach).-U— wyślij niezamówiony ARP (gratuitous), żeby zaktualizować tablice ARP sąsiadów.-b— wysyłaj zawsze na adres broadcast, nie przełączaj się na unicast.
Przykłady użycia
arping -c 3 -I eth0 192.168.1.10 — wyślij 3 zapytania ARP do hosta i sprawdź, czy odpowiada.
arping -D -c 2 -I eth0 192.168.1.50 — sprawdź, czy adres 192.168.1.50 jest wolny, zanim go komuś przypiszesz.
arping -f -I eth0 192.168.1.1 — pingnij bramę i zakończ od razu po pierwszej odpowiedzi.
arping -U -c 2 -I eth0 192.168.1.10 — rozgłoś własny ARP, żeby reszta sieci odświeżyła wpis o twoim MAC (np. po przełączeniu IP).
arping -q -c 1 -I eth0 192.168.1.10 — cicha wersja do sprawdzenia w skrypcie (sprawdzasz potem kod wyjścia).
Częste błędy i pułapki
Pierwsza pułapka: istnieją dwie różne implementacje. Wersja z iputils (typowa na Debianie/Ubuntu) używa -I na interfejs, a wersja Thomasa Habetsa (często w Fedorze/openSUSE) używa -i i potrafi pingować nawet po adresie MAC. Jeśli flaga nie działa, sprawdź arping --help.
Druga: arping wymaga uprawnień do surowych pakietów, więc zwykle odpalasz go przez sudo, inaczej dostaniesz błąd operacji socketu. Trzecia: ARP nie przechodzi przez routery — działa tylko w obrębie tej samej podsieci, więc nie pingniesz nim hosta zza bramy.
Powiązane komendy: ping, arp, ip neigh, nmap, tcpdump.