короткий ответ: Самое простое, что нужно сделать-установить на ноутбуках что-то вроде
a клиент обновления динамического DNS для отслеживания их динамического IP-адреса, когда они не находятся в вашей локальной сети.
еще несколько слов: проблема в том, что только с MAC-адресом вы вынуждены сканировать подсеть, чтобы найти автоответчик с этим MAC-адресом, как только вы назовете его IP-адресом. Другая сторона проблемы состоит в том, что этот IP удаленный компьютер подключается к поставщику (или ADSL сбрасывает подключение и назначает другой IP-адрес).
проще всего, если эта машина (ноутбук) каким-то образом передает текущий IP. Способ использования клиента динамического обновления DNS. Существует даже демон Linux ddclient что помочь с [динамический IP сервера].(http://ubuntuguide.org/wiki/Dynamic_IP_servers)
после этого вы выбираете свое имя (e.g "myname.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.ХХХ локальной сети...)
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 }' | sed s/"inet:"//g
# or you are using a wireless connection on the network ineterface wlan0
sbin/ifconfig wlan0 | grep -E "inet:" | awk '{print }' | sed s/"inet:"//g
PPs> ИМХО это не так хороший или эффективное сканировать весь интернет только для того, чтобы узнать, подключен ли этот компьютер... Это другой случай, если вы подключите этот компьютер к локальной сети или виртуальной частной сети (возможно сканирование с меньшим количеством IP)... : -)