我正试图从一个网站(www.website.com)获取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地址彼此不同?
答案 0 :(得分:1)
$_SERVER['REMOTE_ADDR']
给出发出HTTP请求的客户端的IP地址,而不是托管脚本的服务器的IP地址(保存在$_SERVER['SERVER_ADDR']
中)。
答案 1 :(得分:-1)
这也考虑了来自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;
}