У меня новое обучение, я пытался получить имя хоста, используя сокет 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 или другими способами?