2011-11-21 12 views
22

Ho problemi di DNS con un determinato dominio di destinazione. Sto usando fopen() (ma stesso problema con altre funzioni) per recuperarne l'immagine, ma ottengo questo errore: Warning: fopen(): php_network_getaddresses: getaddrinfo failed: No such host is knownPHP php_network_getaddresses: getaddrinfo non riuscito: nessun host di questo tipo è noto

sono in grado di eseguire il ping o nslookup il dominio dal prompt dei comandi, ma per qualche ragione php genera questa errore. Quando provo lo fopen('http://www.google.com', r); o altri domini, tutto va bene. Ma il dominio sopra menzionato semplicemente non si risolverà con PHP. Ho irrigato il DNS, riavviato Apache, ma ancora senza fortuna ..

ho provato con:

  • Windows 7, Apache 2.2 PHP 5.3.6
  • server Windows 2008R2, Apache 2.2 PHP 5.3 .6

Cosa può causare la mancata risoluzione di questo dominio singolo?

+2

forse questo è utile: http://en.wikipedia.org/wiki/Getaddrinfo - e dovresti chiedere al tuo amministratore di sistema il problema. – hakre

+0

Forse il dominio non esiste o il server DNS del dominio di destinazione non è disponibile sul server. Potresti provare 'ipconfig/flushdns' per svuotare la cache, comunque. – Polynomial

+0

Puoi fornire un esempio più specifico dell'URL? (puoi togliere il nome di dominio) – Narf

risposta

14

IMO è il modo diverso per risolvere un nome dal sistema operativo e da PHP.

Prova:

echo gethostbyname("host.name.tld"); 

e

var_export (dns_get_record ("host.name.tld")); 

o

$dns=array("8.8.8.8","8.8.4.4"); 
var_export (dns_get_record ("host.name.tld" , DNS_ALL , $dns)); 

Si dovrebbe trovato qualche errore di DNS/resolver.

1

Il tuo "localhost" non può risolvere il nome www.google.com, il che significa che il tuo computer non può/non può raggiungere un server DNS valido.

Provare ping google.com sulla console di quella macchina per verificarlo.

0

È più flessibile utilizzare curl anziché fopen e file_get_content per aprire una pagina Web.

-4

cosa aveva causato questo errore sul mio lato era la seguente riga

include_once dirname(__FILE__) . './Config.php'; 

sono riuscito a capire che era il colpevole quando ho aggiunto le righe:

//error_reporting(E_ALL | E_DEPRECATED | E_STRICT); 
//ini_set('display_errors', 1); 

a tutti i miei file php.

per risolvere il path issue i canged la linea incriminata a:

include_once dirname(__FILE__) . '/Config.php'; 
+0

La linea originale e la linea "modificata" sono le stesse in questo momento. – Noumenon

+1

La tua risposta non sembra affatto correlata .. Hai anche ricevuto il messaggio 'Attenzione: fopen(): php_network_getaddresses: getaddrinfo non riuscito: non si conosce questo host' quando si utilizza' include'? Abbastanza sicuro che non sia possibile – Richard

+0

Mi sono reso conto che quell'errore portava a una miriade di problemi non correlati, ecco perché l'ho postato come una risposta a molti problemi diversi. – nyxee

0

Una cosa strana che ho trovato è stata che la variabile d'ambiente SYSTEMROOT deve essere impostata diversamente getaddrinfo() sarà riuscire in Windows 10.

Problemi correlati