Краткий ответ. Вероятно, самое простое - это установить на ноутбуках что-то вроде клиента динамического обновления DNS, чтобы отслеживать их динамический IP-адрес, когда они не находятся в вашей локальной сети.
Еще несколько слов: проблема в том, что, имея только MAC-адрес, вы вынуждены сканировать подсеть, чтобы найти автоответчик с этим MAC-адресом, когда вы называете его IP-адрес. Другая сторона проблемы заключается в том, что этот IP-адрес меняется каждый раз, когда удаленный компьютер подключается к провайдеру (или ADSL сбрасывает соединение и назначает другой IP-адрес).
Проще всего, если эта машина (ноутбук) каким-то образом сообщает текущий IP. Способ сделать это, чтобы использовать динамический клиент обновления DNS. Существует даже Linux-демон ddclient, который помогает с [динамическими IP-серверами]. (Http://ubuntuguide.org/wiki/Dynamic_IP_servers)
После этого вы выбираете свое имя (например, «мое имя».AtFreeOrCommercialProvider.org ') и включите на ноутбуке программу для обновления IP, достаточно будет написать из офиса вышеприведенную строку, чтобы узнать текущий IP удаленного компьютера:
host myname.AtFreeOrCommercialProvider.org
после того, как вы сможете написать его в свой скрипт и использовать, как вы хотите.
Больше слов о оригинальном способе Суть вашего оригинального вопроса
Я знаю MAC-адрес компьютера, который пытаюсь найти, я мог бы просто разрешить его до IP- адреса, но я не совсем уверен, как бы я решил преобразовать MAC-адрес в локальный IP-адрес в публичной сети, используя BASH команды.
Для получения MAC-адреса с IP-адреса вы можете использовать, например, один из следующих способов, который даст вам IP-адрес и MAC-адрес отвечающего компьютера в сети:
nbtscan
, например, nbtscan 192.168.1.0-255
, просканирует указанную вами группу IP-адресов, отвечая на IP-адрес, имя NetBIOS, сервер, пользователь, MAC-адрес. (Если 192.168.1.xxx - ваша локальная сеть ...)
arp
без спецификатора режима напечатает текущее содержимое таблицы соседей сети IPv4 с IP-адресом и MAC-адресом.
Из того же семейства инструментов sudo arp-scan --interface=eth0 192.168.0.0/24
если вы используете кабельное соединение, или sudo arp-scan --interface=wlan0 192.168.0.0/24
если вы используете беспроводное соединение ...
nmap -sP xxx.xxx.xxx.xxx
на всех ваших локальных сетевых адресах и фильтруйте их по известным MAC-адресам.
nmblookup
если вы знаете имена NetBIOS ...
После этого у вас есть в одной строке IP и MAC: адрес, вы можете написать свой скрипт. Некоторые из этих инструментов, возможно, должны быть установлены.
PS> Вы можете узнать свой текущий IP-адрес от
# if you are using a cable connection on the network ineterface eth0
sbin/ifconfig eth0 | grep -E "inet:" | awk '{print $2}' | sed s/"inet:"//g
# or you are using a wireless connection on the network ineterface wlan0
sbin/ifconfig wlan0 | grep -E "inet:" | awk '{print $2}' | sed s/"inet:"//g
PPs> ИМХО, не так приятно и эффективно сканировать весь интернет, чтобы узнать, подключен ли этот конкретный компьютер ... Другое дело, если вы подключаете этот компьютер к локальной сети или к виртуальной частной сети (при меньшем количестве сканируемых IP-адресов это возможно)... :-)