为什么domain.com在hostgator上托pipe时显示为“plant.com”?

我有一个脚本,应该检测其来电者网站的url。 如果调用者是另一个网站,则应该提供类似http://callersite.com 。 我正在使用这一行的PHP代码(虽然我怀疑这不会为系统pipe理员)

 gethostbyaddr($_SERVER['REMOTE_ADDR']) 

我正在使用hostgator托pipe的调用者网站进行testing。 我注意到的是,我没有得到callersite.com ,我得到像1a.12.12ab.static.theplanet.com 。 我不知道theplanet.com是什么,为什么我没有得到caller site.com

另外我需要做什么才能真正获得网站的域名打电话给我的脚本?

感谢您的解释。 有人build议我使用$_SERVER['HTTP_REFERER']但这不是我所追求的。 我的脚本充当一个API。 另一个网站向它发出一个curl请求并获得一个输出,然后将其呈现给用户。 所以http引用者给出false因为来电者site.com正在直接打给我。 那么有什么希望?

Hostgator服务器托pipe在Theplanet DC,现在Softlayer,这就是为什么你得到1a.12.12ab.static.theplanet.com作为主机名。 用户没有RDNS(或共享),这是什么

gethostbyaddr($ _ SERVER [ 'REMOTE_ADDR'])

所以得到它的默认值。 你可以看看这将拉动用户来自的地址。

$ REF = @ $ HTTP_REFERER;

“gethostbyaddr”获得连接IP地址的反向DNS。 你可能正在寻找的是引用,它可以在echo $ _SERVER ['HTTP_REFERER'];

gethostbyaddr会对IP地址进行反向查找。 如果这个IP地址属于一个ISP提供商,在这种情况下是theplanet.com或者softlayer.com,那么你将得到一个指向他们定义的通用名称的指针。

callersite.com只是该IP的别名,而不是真名或指针。

如果你在Linux上,试试

 dig callersite.com 

或在Windows上

 nslookup callersite.com 

或者访问http://www.dnsqueries.com/en/这样的网页,并在那里开始你的DNS查询。

使用curl很容易为请求添加额外的头文件。 如果对方可以修改他们的脚本,他们可以追加你所需要的信息。 由于您正在构build一个API,所以只需将额外的头文件作为规范的一部分。