How to ping MAC address in Linux
You can’t ping a MAC address. You can only ping an IP address, so what you’re trying to do is find out what IP address belongs to a certain MAC Address and ping that IP. ARP is used to find the MAC address of a machine with a certain IP address, but you can’t really go the other way around (technically a protocol called Reverse ARP exists, but it’s never used in typical operating systems). Once the MAC address is found, it’ll be kept in the ARP cache so you don’t have to look it up again for a few minutes, but that’s not a reliable way to find the MAC because entries don’t stay in the cache long. You figured out how to make a static entry, but if you’re hard coding 192.168.15.196 to that MAC address, why don’t you just ping 192.168.15.196 (that’s all you’re doing anyway)?
Solution 3
nmap has the -T option to speed things like this up. -T 5 is the fastest.
You can also try the —min-parallelism option.
Solution 4
Combining the above good answers into a single script: (Usage: macping aa:bb:cc:dd:ee:ff )
#!/bin/bash network=192.168.1.1/24 if [ "$#" -ne 1 ]; then echo Usage example: $0 aa:bb:cc:dd:ee:ff; exit 2; fi; nmap -sP -T4 $network >& /dev/null ip=$(arp -n | grep $1 | awk ' < print $1 >') ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null if [ $? -eq 0 ]; then echo Device is online \($ip\) else echo Device is offline exit 1 fi;
Extending: To maintain a list of network devices, by mac address, and display the online/offline status of each.
Uses include:
- Monitoring your server status’s
- checking your internet connection is up
- checking if a specific device has connected to your wifi
- checking your smart TV is really off
- etc
Each device name is displayed in green if online, red if offline.
A desktop notification is displayed when a device status changes.
Tested under linux mint, should work on other distro’s.
#!/bin/bash #Create associated array's declare -A devicelist #device name: mac address declare -A statuslist #device name: online status devicelist[Server01]=aa:bb:cc:dd:ee:01 devicelist[Server02]=aa:bb:cc:dd:ee:02 devicelist[MyPhone] =aa:bb:cc:dd:ee:03 devicelist[SmartTV] =aa:bb:cc:dd:ee:04 #Colour Constants BRed='\033[1;31m' BGreen='\033[1;32m' Reset='\033[m' function mactoip()< echo $(arp -n | grep -i $mac | awk ' < print $1 >') > while [ true ]; do clear arp_cache_rebuilt=no for devicename in $; do status=OFFLINE mac=$ ip=$( mactoip $mac ) if [ -z $ip ] && [ $arp_cache_rebuilt = "no" ]; then #we need to rebuild the arp cache. nmap -sn -T4 192.168.1.0/24 >& /dev/null ip=$( mactoip $mac ) arp_cache_rebuilt=yes fi; if [ ! -z $ip ]; then ping $ip -n -q -c 2 -i 0.2 -w 1 >& /dev/null if [ $? -eq 0 ]; then status=ONLINE; fi fi; #if device's previous status not yet recorded, then set it now. if [ ! $ ]; then statuslist[$]=$status; fi if [ $status = "ONLINE" ]; then colour=$BGreen; else colour=$BRed; fi; echo -e $$$ - $ip if [ $ != $status ]; then notify-send -i ac-adapter -u critical -t 1000 $status "$devicename" fi; statuslist[$devicename]=$status done echo - sleep 5 done
Solution 5
Here is another and rather simpler answer.
ping $(arp-scan --localnet | grep 80:1f:02:fa:90:b7 | awk ' < printf $1 >')
Note that the mac address has to use lower case letters.
arp-scan seems to run much faster than arp.
Can one ping a NIC by MAC
I have an NIC card on a Debian machine somewhere. The machine is turned off, but I need to know whether the NIC card is turned on so that I can send a wake-on-lan magic packet later (from another Debian machine) to wake it up. I have the MAC address of the card. Is there any way I can ping the ethernet card by MAC to see whether it is on? I tried creating an ARP entry:
arp -s 192.168.2.2 00-0c-0d-ef-02-03 ping 192.168.2.2
That didn’t work, since the NIC card does not have this ip address. So the NIC card would receive the ping request but would not reply to it. Is there any way around this? I am using the etherwake package to send a wake-on-lan message.
6 Answers 6
You might have better luck using the tool arping instead. The tool ping works at the layer 3 level of the OSI model, whereas arping works at layer 2.
You still need to know the IP of the system however with this tool. There are 2 versions of it, the standard one included with most Unixes (Alexey Kuznetsov’s) is the version that can only deal with IP addresses. The other version (Thomas Habets’) supposedly can query using MAC addresses.
$ sudo arping 192.168.1.1 -c 1 ARPING 192.168.1.1 from 192.168.1.218 eth0 Unicast reply from 192.168.1.1 [00:90:7F:85:BE:9A] 1.216ms Sent 1 probes (1 broadcast(s)) Received 1 response(s)
arping works similarly to ping except instead of sending ICMP packets, it sends ARP packets.
Getting a system’s IP using just the MAC
Here are a couple of methods for doing the reverse lookup of MAC to IP.
$ nbtscan 192.168.1.0/24 Doing NBT name scan for addresses from 192.168.1.0/24 IP address NetBIOS Name Server User MAC address ------------------------------------------------------------------------------ 192.168.1.0 Sendto failed: Permission denied 192.168.1.4 MACH1 00-0b-12-60-21-dd 192.168.1.5 MACH2 00-1b-a0-3d-e7-be 192.168.1.6 MACH3 00-21-9b-12-b6-a7
Linux ping mac address
Чтобы пропинговать хост по известному MAC-адресу, можно воспользоваться командой arping:
Если в таком виде не срабатывает, можно попробовать:
Причина, почему arping при каких-то неясных обстоятельствах не может пропинговать хост по MAC, хотя MAC однозначно правильный, состоит в том, что в Linux существует две утилиты arping . Одна находится в пакете arping , и расположена так:
А вторая находится в пакете iputils-arping , и расположена так:
Так вот, вторая утилита (из пакета iputils-arping ) не умеет пинговать хост по MAC. При попытке пропинговать по MAC, будет выводиться ошибка:
arping: 74:10:25:3e:4e:50: Name or service not known
Предполагается, что эта (вторая) утилита нужна просто для того, чтобы пингануть хост по обычному IP, и в выводимой информации увидеть какой MAC этому IP соответсвует.
Проблема в том, что в некоторых Linux-дистрибутивах имеется только пакет iputils-arping , а пакета arping нет (например это Astra Linux). Поэтому в таких дистрибутивах пропинговать хост по MAC-адресу просто не получится.
Если хосты уже пинговались, и известны сетевой подсистеме компьютера, то чтобы узнать IP адрес по MAC адресу, можно воспользоваться командой arp , которая покажет содержимое ARP-таблицы:
arp -an | grep AB:12:CD:56:AA:98
Другими словами, следует учитывать, что команда arp показывает закешированные на компьютере адреса, то есть адреса, к которым компьютер обращался (или к нему обращались и был какой-то обмен). Поэтому перед ее использованием обязательно надо сделать команду ping или arping .
Возможно, что вывод команды arp будет в нижнем регистре, тогда в grep нужно писать ab:12:cd:56:aa:98 .
- Как примонтировать SMB диск с русскими именами файлов, другие опции Samba
- wget — основные параметры
- Маскарадинг (masquerading) и трансляции ip-адресов (NAT)
- Используем 2+ провайдера
- Как в Linux узнать какая программа слушает порт
- Отправляем бекап на почту
- Прокси сервера для фильтрации контента
- Privoxy — прокси-сервер для фильтрации веб-содержимого
- Что делать, если каталог был примонтирован через smbmount, а потом Windows был выключен
- OpenSSH: настройки, секреты, трюки и советы
- Написание HTTP-запросов с помощью Curl
- Как быстро узнать, какой веб-сервер используется на сайте
- Как удалить сетевое соединение с указанным IP и номером порта
- Как отключить ответ на запросы с указанного IP (борьба с DDOS атаками)
- Как сделать маршрутизацию, чтобы при недоступности одного шлюза траффик шел через другой
- Как в Linux вывести все переменные окружения, с которыми работает процесс
- Как настроить автоматическую перезагрузку через 10 секунд после kernel panic
- Как посмотреть в содержимое initrd, собранного mkinitramfs
- Как быстро проверить Linux сервер на предмет взлома
- Защита от DDoS с iptables и ipset
- Как быстро узнать список машин в сети
- Как бороться с DDOS атакой
- Где прописывать правила фаирвола
- Интернет через ICMP
- Как проверить свой сайт на стандартные уязвимости
- Почтовый сервер со всем фаршем на 10.04 LTS
- Как залогиниться через WGET с сохранением кук
- Выкачивание набора файлов с ресурса, на который вначале требуется сделать вход через логин-пароль
- SSH: как настроить доступ к домашнему компьютеру, скрытому за NAT
- Как в Linux посмотреть, какие запросы идут по сети в реальном времени
- Как в Linux быстро просмотреть список активных сетевых соединений
- Zabbix: Обслуживание сети, автоматизация администрирования
- Мониторинг коммутаторов Cisco, D-Link, 3Com, Zyxel в системе Zabbix
- Как в Debian, перенесенном (скопированном) с другого раздела заставить идти нумерацию eth интерфейсов с нуля
- Что делать, если отключилось соединение sshfs
- Пример сети класса C (C1, C2, . )
- Как присвоить одной сетевой карте несколько IP адресов
- Формат конфиг-файла iptables
- Настройка iptables для чайников от losst.ru
- Методичка по настройке iptables в Linux
- Основные понятия iptables в Linux — подробное объяснение приниципа работы и формата конфигов
- Как безопасно проверить конфигурационный файл iptables
- Как настроить сервер SSH чтобы постоянно на разрывалось соединение
- Как примонтировать диск через SSH
- Особенности настройки фаирвола iptables в Debian 7.4
- Как сделать эхо-сервер на конкретном порту в Linux
- Nmap. Начало использования
- DNS туннель через закрытый WiFi
- Как скачивать через youtube-dl. Опции команды.
- Просмотр ARP таблиц в Windows и Linux
- Как посмотреть открытые файлы на SAMBA сервере
- Быстрая настройка dnsmasq в качестве DNS-сервера в Debian Linux 8.5
- Как в Debian Linux разрешить вход по паролю для root через ssh
- Как пропинговать хост по MAC адресу
- Настройка сети в RedHat (RHEL) 7 Linux и Fedora 25 через консоль
- Как в Linux найти все компьютеры в сети
- Уровни модели OSI
- Структура пакета IPv4
- Структура пакета TCP (формат заголовка сегмента)
- Настройка интернет соединения (PPPoE) для Linux
- Настройка PPPoE в Network Manager под Linux
- Какие пакеты нужны, чтобы примонтировать ресурс по NFS
- Утилита ip в Linux
- Как подключиться к WiFi, минуя SMS аутентификацию. Как узнать MAC адрес уже подключенного пользователя. Как подменить MAC-адрес.
- Вход в публичные защищенные Wi-Fi сети путем спуфинга MAC-адреса
- Как в Debian Linux настроить сеть через команду ip
- О чем говорит ошибка «RTNETLINK answers: File exists»
- Подключение компьютера с Linux к сети Интернет через USB-кабель и телефон с Android
- Исправление работы сети в Debian 9
- Настройка сети — пример файла конфигурации /etc/network/interfaces в Debian Linux
- Как создать сетевое соединение между двумя компьютерами по COM-порту в Linux
- Как настроить кодировку UTF-8 в minicom
- Как в Linux узнать MAC-адрес по IP-адресу
- Как получить информацию о домене через утилиту whois
- Как установить и запустить ntop в Debian Linux 11