首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过PHP知道IP的域名?

问如何通过PHP知道IP的域名?
EN

Stack Overflow用户
提问于 2011-12-30 06:01:39
回答 4查看 8.2K关注 0票数 1

如何通过PHP知道IP的域名?

我用过这段代码

代码语言:javascript
复制
<?php
  $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  echo $hostname;
?>

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

代码语言:javascript
复制
gethostbyaddr(62.75.138.253);

域名是earthwar.de,但正确答案是德语-proxy.de

请帮帮忙。

EN

回答 4

Stack Overflow用户

发布于 2011-12-30 06:08:01

单个IP地址可以承载潜在的无限数量的域。gethostbyaddr返回的域名将提供该IP的PTR DNS记录中的域名。反向DNS记录(PTR)将IP地址映射到一个或多个域名。

domaintools.com就是这样一家提供与IP地址上的域一样的智能的公司。你可以为他们收获的这样的信息付费。如果域名不在PTR记录中,那么您可以知道IP地址上有哪些域的唯一方法是尝试将域名解析为其IP地址并保留记录。阿菲克,别无他法。

请参阅Reverse DNS Lookup和Domain tools reverse IP lookup

域名反向IP查找工具的数据都是基于它们的挖掘、收集和研究。

票数 3
EN

Stack Overflow用户

发布于 2011-12-30 06:07:42

你的PHP是正确的,earthwar.de是正确的答案。

代码语言:javascript
复制
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:
> 

当然,这并不意味着其他名称(如德语-proxy.de)不指向相同的地址,但没有办法找到所有这些名称。

更新:

代码语言:javascript
复制
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
> 

所以这是一个很好的例子。事实是:你不是无能为力的,伙计!

票数 2
EN

Stack Overflow用户

发布于 2011-12-30 06:07:59

可以有许多名称->IP映射,但只能ONE IP->名称映射。在执行host->ip->host查找时,以完全不同的主机名结束并不少见。您无法确定用户指定的主机名,除非用户使用的协议将该主机名与请求一起传输,例如http 1.1。大多数协议完全脱离IP地址工作,不需要/不关心主机名。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8674010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档