nombre - php get ip server
Resolver el nombre de host en PHP usando un servidor de nombres diferente (3)
Cómo puedo resolver el nombre de host a la dirección IP usando PHP, pero usando un servidor de nombres diferente (por ejemplo, OpenDNS o Google Public DNS ).
No parece que dns_get_record()
o gethostbyname()
puedan usar un servidor de nombres diferente de uno configurado actualmente en el sistema (en la configuración de TCP / IP o en /etc/resolv.conf
).
La única forma que he encontrado es usando la clase PEAR Net / DNS, pero me da muchas advertencias bajo PHP 5.4
Pruebe net_dns2 (también está en PEAR).
Si puede ejecutar scripts de shell desde su script, puede usar el comando nslookup
del sistema.
$host = ''.com'';
$dns = ''8.8.8.8''; // Google Public DNS
$ip = `nslookup $host $dns`; // the backticks execute the command in the shell
$ips = array();
if(preg_match_all(''/Address: ((?:/d{1,3}/.){3}/d{1,3})/'', $ip, $match) > 0){
$ips = $match[1];
}
print_r($ips);
Nota: use escapeshellarg
si $host
y $dns
provienen de la entrada del usuario.
<?
require_once ''Net/DNS2.php'';
$resolver = new Net_DNS2_Resolver( array(''nameservers'' => array(''208.67.222.123'')) );
$resp = $resolver->query("hooktube.com.", ''A'');
print_r($resp);
echo $resp->answer[0]->address;