Ответ 1
Это потому, что вы не можете разрешить имя хоста Возможно, проблемы DNS, хост недоступен...
попробуйте использовать IP-адрес вместо имени хоста... ping это имя хоста... nslookup it...
Попытка получить информацию от внешнего источника, я получаю следующую ошибку:
Предупреждение: php_network_getaddresses: getaddrinfo не удалось: временный сбой в разрешении имен в строке #...
Вчера все было хорошо, так что случилось с этим script, который не работает и дает мне ошибку выше? Любое решение или подсказка для решения этой проблемы?
$uri = "http://api.hostip.info/?ip=$ip&position=true";
$dom->load($uri);
Я также попытался преобразовать DNS в IP, но затем получаю предупреждение: failed to open
$uri = "174.129.200.54/?ip=$ip&position=true";
Я попытался удалить http
, но все еще получаю указанную выше ошибку.
Это потому, что вы не можете разрешить имя хоста Возможно, проблемы DNS, хост недоступен...
попробуйте использовать IP-адрес вместо имени хоста... ping это имя хоста... nslookup it...
В следующем httpd.conf
файле настройте ServerName
правильно.
/etc/httpd/conf/httpd.conf
Как ниже:
ServerName 127.0.0.1:80
или
ServerName sitename
Это разрешило аналогичную проблему, с которой я столкнулся.
В моем случае (моя машина ubuntu 16), я добавляю /etc/resolvconf/resolv.conf.d/base
файл, добавляя ниже строки ns.
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 2001:4860:4860::8844
nameserver 2001:4860:4860::8888
затем запустите обновление script,
resolvconf -u
Я бы предположил, что кеширующие DNS-серверы, которые вы используете, не ведут себя правильно (или DNS-сервер для домена, который вы разрешаете, работает неправильно). Вы можете попытаться исправить прежнюю возможность.
У вас есть как минимум 2 сервера имен, зарегистрированных на вашем сетевом адаптере? Вы всегда можете поменять свой компьютер на использование другого кэширующего DNS-сервера, чтобы это исключить. Попробуйте Google:
8.8.8.8
8.8.4.4
Если вы можете со скидкой на переходные процессы на удаленном сервере, к которому вы пытаетесь подключиться, то это просто оставляет конфигурацию локальной сети проблемой.
Использование IP-адреса вместо имени хоста будет работать только для домена по умолчанию на удаленном хосте.
Что происходит при попытке использовать www.google.com(или его IP-адрес)? Если вы не можете подключиться, то это будет связано с сетью между вашим сервером и внешним миром.
Хотя это старая ветка, я недавно столкнулся с той же ошибкой при запуске nslookup в CentOS 7, и поиск в Google привел меня к некоторым обсуждениям в SO, включая эту. Однако добавление записей серверов имен в один файл /etc/resolv.conf не помогло, поскольку значения сервера имен в resolv.conf были перезаписаны NetworkManager с DNS-серверами имен по умолчанию, которые находятся в профиле eth, связанном с конфигурацией IP-сети Ethernet.
Как упомянуто @m-canvar, установите следующие записи в /etc/resolv.conf
search yourdomain.com
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 8.8.4.4
Чтобы предотвратить перезапись этих записей в NetworkManager, существует два подхода:
Вариант 1: либо установите NM_CONTROLLED = no в профиле eth, связанном с профилем IPv4/IPv6.
Вариант 2: отключить запуск службы NetworkManager.
chkconfig NetworkManager off
service NetworkManager stop
Более подробную информацию можно найти в моем сообщении об этой ошибке и ее решении.
Хотя я не использовал эту точную функцию, я получил ту же ошибку.
В моем случае мне просто нужно было удалить протокол.
Вместо $uri = "http://api.hostip.info/?ip=$ip&position=true";
Используйте $uri = "api.hostip.info/?ip=$ip&position=true";
И потом все работало нормально