получение имени хоста удаленных компьютеров в локальной сети без настройки в / etc / hosts - PullRequest
0 голосов
/ 18 февраля 2020

У меня новое обучение, я пытался получить имя хоста, используя сокет python.

, поэтому из моего macbook я запустил следующий код:

socket.gethostbyaddr("192.168.1.111")

и я получить ('rock64', [], ['192.168.1.111']), затем я попробовал IP-адрес компьютера, который больше не находится в сети, но имел обыкновение быть:

socket.gethostbyaddr("192.168.1.189")

, и он возвратил: ('mint', [], ['192.168.1.189']), тогда я понял, что это приходит от /etc/hosts file.

теперь в этом файле хоста у меня также есть эта запись:

/ etc / hosts

172.217.25.3 google.com.hk

но если я пытаюсь получить хост с IP-адреса WAN, я получаю результаты, отличные от ожидаемых!

socket.gethostbyaddr ("172.217.25.3")

, который возвращает ('hkg07s24-in-f3.1e100.net', ['3.25.217.172.in-addr.arpa'], ['172.217.25.3'])

, поэтому мне не интересно, где в последнем случае IP-адреса WAN я получаю имя хоста и почему в случае IP-адресов локального компьютера я получаю имя хоста из настроенного файла / etc / hosts?

Как мы можем получить имя хоста компьютеров в локальной сети без необходимости socket.gethostbyaddr просматривать файл / etc / hosts или другими способами?

1 Ответ

0 голосов
/ 19 февраля 2020

Это основанный на мнениях ответ на вопрос «как создать реестр сетевых устройств в вашей локальной сети?»

Лучший способ создать реестр устройств в вашей локальной сети - настроить ntopng на ваш шлюз. Он использует методику DPI (Deep Packet Inspection) для сбора информации о хостах. NTOPNG имеет приятный пользовательский интерфейс и отображает имена хостов (когда это возможно). Вы можете назначить псевдонимы для определенных c хостов, которые не пропускают имена хостов через какой-либо протокол.

По некоторым причинам разработчики ntopng не включили псевдоним в json ответ на запрос http://YOUR-SERVER: 3000 /lua/host_get_json.lua?ifid=2&host=IP-OF-DEVICE.

Вы можете добавить его вручную, добавив строки require "mac_utils" и hj["alias"]=getDeviceName(hj["mac_address"]) в файл / usr /share/ntopng/scripts/lua/host_get_json.lua

Вы можете использовать REST API для опроса ntopng и использовать предоставленную информацию для создания любого скрипта, который вам нужен.

...