para - php obtener ip del servidor
¿Cómo puedo saber el Dominio de una IP por PHP? (4)
¿Cómo puedo saber el Dominio de una IP por PHP?
He usado este código
<?php
$hostname = gethostbyaddr($_SERVER[''REMOTE_ADDR'']);
echo $hostname;
?>
Pero no funciona correctamente. Por ejemplo:
gethostbyaddr(62.75.138.253);
nombre de dominio es earthwar.de pero la respuesta correcta es german-proxy.de
Por favor ayuda.
Puede haber MUCHAS asignaciones de nombre-> IP, pero solo UNA asignación de nombre IP->. No es inusual terminar con un nombre de host completamente diferente cuando haces host-> ip-> búsquedas de host. No puede determinar qué nombre de host ha especificado un usuario a menos que el protocolo que está utilizando transmita ese nombre de host junto con la solicitud, por ejemplo, http 1.1. La mayoría de los protocolos funcionan exclusivamente a partir de una dirección IP y no necesitan ni se preocupan por los nombres de host.
Tu PHP es correcto, earthwar.de es la respuesta correcta
eugen@lucidhome:~$ nslookup
> set q=ptr
> 62.75.138.253
Server: 192.168.232.1
Address: 192.168.232.1#53
Non-authoritative answer:
253.138.75.62.in-addr.arpa name = earthwar.de.
Authoritative answers can be found from:
>
Por supuesto, esto no significa que los otros nombres (como german-proxy.de) no apunten a la misma dirección, pero no hay forma de encontrarlos todos.
Actualizar:
eugen@lucidhome:~$ nslookup
> set q=a
> german-proxy.de.
Server: 192.168.232.1
Address: 192.168.232.1#53
Non-authoritative answer:
Name: german-proxy.de
Address: 62.75.138.253
> earthwar.de.
Server: 192.168.232.1
Address: 192.168.232.1#53
Non-authoritative answer:
Name: earthwar.de
Address: 91.143.85.129
>
así que este es un buen ejemplo. El hecho es que no hay nada que pueda hacer, ¡amigo!
Una sola dirección IP puede albergar un número potencialmente ilimitado de dominios. Los dominios devueltos por gethostbyaddr
darán los nombres de dominio de los registros DNS de PTR para esa IP. Un registro DNS inverso (PTR) asigna direcciones IP a uno o más nombres de dominio.
Una de esas compañías que proporciona inteligencia en cuanto a dominios en direcciones IP es domaintools.com. Puede pagar por la información que han recolectado. Si el nombre de dominio no está en el registro PTR, entonces la única forma en que puede saber qué dominios hay en una dirección IP es intentar resolver los nombres de dominio en sus direcciones IP y llevar registros. AFIK no hay otra manera.
Consulte Búsqueda inversa de DNS y herramientas de dominio búsqueda inversa de IP
Los datos de la búsqueda de IP inversa en herramientas de dominio se basan en su extracción, recopilación e investigación.
No puedes confiar en el nombre devuelto por gethostbyaddr . Un servidor DNS con autoridad para una dirección IP particular puede devolver cualquier nombre de host.
Generalmente, los administradores configuran servidores DNS para responder con un nombre de host correcto, pero un usuario malintencionado puede configurar su servidor DNS para responder con nombres de host incorrectos. Puede evitar caer en esa trampa cuando llame a gethostbyname en el nombre de host devuelto por gethostbyaddr y asegúrese de que el nombre se resuelva en la dirección IP original.
Pero hay más ... a veces, un solo nombre de host puede asignarse a múltiples direcciones IP.
var_dump(gethostbynamel(''google.com''));
devoluciones
array(6) {
[0]=>
string(14) "173.194.69.104"
[1]=>
string(14) "173.194.69.147"
[2]=>
string(14) "173.194.69.105"
[3]=>
string(14) "173.194.69.106"
[4]=>
string(14) "173.194.69.103"
[5]=>
string(13) "173.194.69.99"
}
En general, tendrá que aprender sobre la búsqueda de DNS y las búsquedas DNS inversas. Es un largo camino por recorrer, pero puedes confiar en mí cuando digo que es interesante.