从网站拉IP地址
我试图从两个不同的方法从一个网站(www.website.com) 获得IP地址。从网站拉IP地址
在www.website.com我用$_SERVER['REMOTE_ADDR']
和送过来www.website.com的IP地址www.website2.com。然后,我使用www.website2.com上的gethostbyname("www.website.com")
来搜索www.website.com的IP地址,以便将它们进行比较,但由于某些原因,它们并不相同。
为什么在IP地址各不相同?
$_SERVER['REMOTE_ADDR']
给出了发出HTTP请求的客户端的IP地址,而不是承载该脚本的服务器的IP地址(保存在$_SERVER['SERVER_ADDR']
中)。
'REMOTE_HOST'会正常工作吗? – 2013-04-07 17:36:39
@ChristianDaley - 当我在我的服务器上运行'print_r($ _ SERVER)'时,该键不会出现,所以我不会这么想。 – Quentin 2013-04-07 17:38:14
'SERVER_ADDR'完美无缺!谢谢!给它8分钟,我会将其标记为答案。 – 2013-04-07 17:40:18
这也说明了IP地址从HTTP_CLIENT_IP
和HTTP_X_FORWARDED_FOR
/**
* getVisitorIP
*
* Gets visitor IP address
*
* @return string Visitor IP address
*/
public function getVisitorIP() {
$ip = $_SERVER['REMOTE_ADDR'];
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
return $ip;
}
未来它们是否都托管在同一域名服务器? – christopher 2013-04-07 17:35:24
现在可以,但有些网站可能不会。 – 2013-04-07 17:36:01
如果他们使用专用IP,他们可以被托管在相同的名称服务器和服务器上,同时拥有不同的IP。名称服务器只是将用户引导至正确的IP。 – RageD 2013-04-07 17:37:39