我有一个脚本,应该检测其来电者网站的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,所以只需将额外的头文件作为规范的一部分。