Python на моем Mac считает, что мое полное доменное имя - 1.0.0.127.in-addr.arpa . Это похоже на тавтологически верный обратный ответ DNS для системы, которая на самом деле не имеет реального доменного имени. Но по какой-то причине этот домен не может быть преобразован в IP-адрес, который он четко представляет (127.0.0.1):

$ python -i
Python 2.7.10 (default, Jul 14 2015, 19:46:27) 
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import socket
>>> socket.getfqdn()
'1.0.0.127.in-addr.arpa'
>>> socket.gethostbyname(socket.getfqdn())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
socket.gaierror: [Errno 8] nodename nor servname provided, or not known
>>> 

Это не просто Python; Я также не могу 1.0.0.127.in-addr.arpa из-за ошибки разрешения DNS.

Почему домены in-addr.arpa не разрешаются по IP-адресам, которые они представляют?

1 ответ1

1

127.in-addr.arpa. IANA не была делегирована ни одному общедоступному серверу имен, поскольку это зарезервированный IP-блок для петлевых адресов.

[nevin-mac-mini:~] nevin% nslookup
> set type=SOA
> in-addr.arpa.
Server:     192.168.2.1
Address:    192.168.2.1#53

Non-authoritative answer:
in-addr.arpa
    origin = b.in-addr-servers.arpa
    mail addr = nstld.iana.org
    serial = 2017043116
    refresh = 1800
    retry = 900
    expire = 604800
    minimum = 3600

Authoritative answers can be found from:
in-addr.arpa    nameserver = a.in-addr-servers.arpa.
in-addr.arpa    nameserver = b.in-addr-servers.arpa.
in-addr.arpa    nameserver = c.in-addr-servers.arpa.
in-addr.arpa    nameserver = d.in-addr-servers.arpa.
in-addr.arpa    nameserver = e.in-addr-servers.arpa.
in-addr.arpa    nameserver = f.in-addr-servers.arpa.
> server a.in-addr-servers.arpa.
Default server: a.in-addr-servers.arpa.
Address: 199.212.0.73#53
> 127.in-addr.arpa.
Server:     a.in-addr-servers.arpa.
Address:    199.212.0.73#53

** server can't find 127.in-addr.arpa.: NXDOMAIN
> 

Это авторитетный ответ «нет такого домена».

Я думаю, что вы могли бы поставить запись хоста:

1.0.0.127.in-addr.arpa. 127.0.0.1

в /etc/hosts или любом другом локальном ресурсе, который ваша система использует для внутреннего преобразователя DNS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .