Devo implementare una soluzione da WinApp
scritta in C#
a PHP
. Devo estrarre lo IP
in base allo host name
. Il pezzo di sotto del codice funziona perfettamente:PHP Ottieni IP in base al nome host
IPHostEntry LocalHostIPEntry = Dns.GetHostEntry(hostname);
IPAddress LocalHostIP = LocalHostIPEntry.AddressList[0];
string ipfromhost = LocalHostIP.ToString();
L'unica opzione che ho trovato finora in PHP
è:
gethostbyname('hostname');
Ma che restituisce un diverso IP
per lo stesso host rispetto al codice C#
. Inoltre, il numero IP
restituito non è corretto. Se controllo l'host relativo utilizzando nslookup -IPaddress-
, ricevo un nome host completamente diverso.
Cosa sta succedendo? Quali altri metodi potrebbero essere utilizzati per cercare il IP
di un host
sulla rete utilizzando PHP
?
Questo errore si verifica con tutti i nomi host che si tenta? Hai detto che sei su una rete interna, cosa succede quando controlli esternamente? Che dire di gethostbynamel (ottiene un elenco se l'host ha più IP)? Inoltre, gethostbyname utilizza la libreria resolver del SO sottostante (Linux/Windows) - non è sicuro come funzioni la versione di C#. Infine, se trovi che stai interrogando il DNS errato c'è una libreria Pear per questo: http://pear.php.net/package/Net_DNS2 – lydiat
Sembra che potrebbe essere un problema specifico della macchina: puoi provare il stesso codice (e 'nslookup') da una macchina diversa sulla stessa rete? In alternativa, da una macchina virtuale o una distribuzione Linux live? – Viruzzo
È solo per le ricerche DNS inverse o stai cercando di ottenere il DNS generale? – Machavity