繁体   English   中英

如何通过PHP知道IP的域?

[英]How I can know the Domain for an IP by PHP?

如何通过PHP知道IP的域?

我已经使用了这段代码

<?php
  $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  echo $hostname;
?>

但是它不能正常工作。 例如:

gethostbyaddr(62.75.138.253);

域名是Earthwar.de,但正确的答案是german-proxy.de

请帮忙。

单个IP地址可以托管数量可能不受限制的域。 gethostbyaddr返回的域将提供来自该IP的PTR DNS记录中的域名。 反向DNS记录(PTR)将IP地址映射到一个或多个域名。

一家提供有关IP地址上的域的情报的公司就是domaintools.com。 您可以为他们收集的此类信息付费。 如果域名不在PTR记录中,那么您唯一可以知道IP地址上的域的方法是尝试将域名解析为IP地址并保留记录。 AFIK没有其他方法。

请参阅反向DNS查找域工具反向IP查找

域工具上反向IP查找的数据全部基于其挖掘,收集和研究。

您的PHP是正确的,earthwar.de是正确的答案

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:
> 

当然,这并不意味着其他名称(例如german-proxy.de)不会指向同一地址,但是无法找到所有这些名称。

更新:

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
> 

所以这是一个很好的例子。 事实是:伙计,还有一个可以做的事!

可以有许多名称-> IP映射,但只有一个 IP->名称映射。 当执行host-> ip-> host查找时,以完全不同的主机名结尾是很平常的。 您无法确定用户指定的主机名,除非他们使用的协议将该主机名与请求一起发送,例如http 1.1。 大多数协议仅靠IP地址工作,不需要/关心主机名。

您不能相信gethostbyaddr返回的名称。 具有特定IP地址权限的DNS服务器完全可以返回任何主机名。

通常,管理员将DNS服务器设置为使用正确的主机名进行答复,但是恶意用户可能将其DNS服务器配置为使用错误的主机名进行答复。 您可避免落入这个陷阱,当你调用的主机名的gethostbynamegethostbyaddr返回,并确保名称解析为原来的IP地址。

但是还有更多...有时一个主机名可以映射到多个IP地址。

var_dump(gethostbynamel('google.com')); 

退货

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"
}

总而言之,您将需要了解DNS挖掘和反向DNS查找。 那是一条漫长的路,但是当我说这是一条有趣的路时,您可以相信我。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM