Ошибка 11001 - это общая ошибка поиска DNS, поэтому у меня только один вопрос. Существует ли адрес 120.15.22.14 в DNS?
Вы можете узнать это, набрав
nslookup 120.15.22.14
из командной строки.
Если вы получаете сообщение об ошибке, это потому, что DNS ничего не знает об этих адресах, поэтому gethostbyaddr()
не сможет предоставить вам какую-либо информацию.
Обновление:
Отвечая на ваши очки:
Я просто набираю nslookup 120.15.22.14, но он возвращается обратно, так как не могу найти 120.15.22.14. Несуществующий домен.
Поскольку nslookup 120.15.22.14
возвращает ошибку, в DNS нет записи для этого IP-адреса. Это твоя проблема.
Я смотрю на настройки моего устройства для DNS, и он устанавливается на 120.20.32.10, который отличается от 120.15.22.14, значит, я не настроил DNS?
Если 120.20.32.10
- это то, что находится в DNS для вашего устройства, а 120.15.22.14
- это фактический адрес, значит, DNS неверен. Легко и просто. Исправить DNS.
выдаст ли он тот же результат, если я использую gethostbyname () вместо gethostbyaddr ()?
Если вы хотите превратить DNS-имя в IP-адрес, используйте gethostbyname()
. Чтобы превратить IP-адрес в DNS-имя, используйте gethostbyaddr()
.
Для подключения к удаленному хосту вы обычно используете вызов gethostbyname()
, так как IP-адрес хоста может измениться в любое время. При условии, что DNS всегда точно представляет IP-адрес этого хоста, это предпочтительный способ.