Обнаружение известного компьютера в общедоступной сети в BASH

кто-нибудь знает способ через BASH (в частности, терминал OSX, но я бы предпочел решение BASH только без OSX' в встроенной функциональности), чтобы обнаружить известный компьютер в публичной сети (на котором я также расположен)?

моя мысль заключалась в том, что, поскольку я знаю MAC-адрес компьютера, который я пытаюсь найти, я мог бы просто решить это на IP, но я не уверен, как именно я буду решать MAC-адрес на локальный IP-адрес в публичной сети с помощью BASH команды.

моя цель состоит в том, чтобы создать сценарное решение, которое позволит мне настроить значок на рабочем столе, который при двойном щелчке обнаруживает известный компьютер в сети и его соответствующий локальный IP-адрес, создает туннель SSH для VNC, а затем открывает приложение совместного использования экрана через туннель SSH. По сути, дважды щелкните, чтобы открыть безопасное соединение совместного использования экрана в общедоступной сети без стороннего программного обеспечения и только инструменты, доступные через BASH и OSX.

все это происходит в той же сети Интернет. Например, представьте, что два человека ходят в одну и ту же кофейню. Я хочу, чтобы человек a сканировал IP человека B, учитывая, что они уже знают IP-адрес человека B.

10
задан Thought Space Designs
04.04.2023 13:28 Количество просмотров материала 3511
Распечатать страницу

4 ответа

они делают что-то для этого, называемое DNS-именем. Если это публичный сервер, то он, скорее всего, имеет его. Если это не так, то вы будете хотеть, чтобы сделать свой собственный, если у вас уже есть DNS-имя в вашей организации, то просто добавить новую запись на DNS-сервере, который определяет новый поддомен для этого сервера. В общем, все публичные серверы используют статические IP-адреса, хотя даже в этом нет необходимости. IP никогда не должен меняться, поэтому просто используйте его. Если IP меняется, то вы будете необходимо либо установить динамический dns-клиент на сервере, который будет поддерживать запись DNS в актуальном состоянии для вас автоматически или создать свою собственную систему (возможно, сценарий, который держит ваш хост-файл(ы) обновляется [я имею в виду хост-файлы на каждом из ваших клиентов; не сервер]). Также, никакая потребность потревожиться о местном IP против общественного IP. Это то, что ваш маршрутизатор знает, как управлять автоматически. Пока таблица маршрутизации настроена правильно, она найдет наилучший путь к серверу. Если у вас есть домашний маршрутизатор, то все это будет обрабатываться автоматически за кулисами.

обновление

Я на самом деле просто подумал о хорошем решении, которое должно работать. Получить облачный диск, как Google Drive. Настройте правильную синхронизацию на обоих компьютерах. Затем пусть другой компьютер запишет файл в папку sync, содержащую локальный IP:

echo `ifconfig eth0 2>/dev/null|awk '/inet addr:/ {print }'|sed 's/addr://'` > /home/user/share/pcname_current_ip

теперь вам просто нужно прочитать этот файл, чтобы найти текущий IP для этого компьютера (если они оба синхронизированы конечно.)

1
отвечен krowe 2023-04-05 21:16

короткий ответ: Самое простое, что нужно сделать-установить на ноутбуках что-то вроде 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-адрес автоответчика в сети:

  1. nbtscan, например,nbtscan 192.168.1.0-255 просканирует группу IP-адресов, на которые вы указали IP-адрес, NetBIOS-имя, сервер, пользователь, MAC-адрес. (Если 192.168.1.ХХХ локальной сети...)
  2. arp без спецификатора режима напечатает текущее содержимое таблицы соседей сети IPv4 с IP и MAC-адресом.

    Из того же семейства инструментов sudo arp-scan --interface=eth0 192.168.0.0/24 если вы используете кабельное соединение, или sudo arp-scan --interface=wlan0 192.168.0.0/24 если вы используете беспроводное соединение...
  3. nmap -sP xxx.xxx.xxx.xxx на всех ваших локальных сетевых адресов и фильтровать их с известными MAC-адресами.
  4. 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)... : -)

1
отвечен Hastur 2023-04-05 23:33

Как насчет настройки собственной беспроводной сети ad-hoc на одном из ПК и маршрутизации трафика других ПК через него. Безопасный и нет необходимости для отслеживания ip третьей стороной...

0
отвечен Ryan Griggs 2023-04-06 01:50

самый простой способ сделать это с logmein или Team viewer. Да, третья сторона, но это будет работать очень просто.

-1
отвечен Ryan Griggs 2023-04-06 04:07

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя

Похожие вопросы про тегам:

bash
bash-scripting
macos
networking
ssh
Вверх