[英]How to get the my system's IP address
如何获得系统的IP地址?
我正在使用$ip_address=$_SERVER[REMOTE_ADDR];
,但它返回我的本地主机IP地址,而不是系统的IP地址。
如果要访问本地服务器,则您的本地IP地址就是远程IP。 PHP给您正确的答复。
如果您想知道互联网其他地方的IP地址,请访问Google并输入“我的IP是什么”。
$_SERVER['SERVER_ADDR']
有关在$_SERVER
超全局变量中可能找到的内容的完整列表,请参见php文档 。
此功能将确定实际的IP地址:
function ipCheck() {
if (getenv('HTTP_CLIENT_IP')) {
$ip = getenv('HTTP_CLIENT_IP');
}
elseif (getenv('HTTP_X_FORWARDED_FOR')) {
$ip = getenv('HTTP_X_FORWARDED_FOR');
}
elseif (getenv('HTTP_X_FORWARDED')) {
$ip = getenv('HTTP_X_FORWARDED');
}
elseif (getenv('HTTP_FORWARDED_FOR')) {
$ip = getenv('HTTP_FORWARDED_FOR');
}
elseif (getenv('HTTP_FORWARDED')) {
$ip = getenv('HTTP_FORWARDED');
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
回复较晚,但我希望它仍然可以帮助某人。 我需要一个项目的系统ip,因此我很快使用正则表达式取消了自定义函数。 它可以在ubuntu linux上运行(从技术上讲,它应该可以在任何发行版/版本的linux上运行)。
function getLocalIp(){
$output = shell_exec('/sbin/ifconfig');
preg_match("/inet?[[:space:]]?addr:([0-9.]+)/", $output, $matches);
if(isset($matches[1]))
$ip = $matches[1];
else
$ip = 0;
return $ip;
}
这个需要:
如果您碰巧要为Windows创建类似的东西或改善此功能的功能,请与我们其他人分享您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.