获取访问者/外网IP地址的代码

获取内网IP地址如果要查询电脑的内网IP地址,在终端cmd用命令ipconfig /all就可以查询到了。获取外网IP地址如果要查询电脑的外网IP地址,一般的做法都是通过百度搜索引擎搜索”IP”关键词得到结果。不过,这种通过百度出来的IP地址,很多时候是不准确的,即使IP最后段位的一字之差也是致命错误。代码获取访问者真实IP我们编写好一段判断是未知IP还是已知IP的代码,进行测试的时候就需要知道电脑的真实外网IP了。而根据我的经验讲,上图百度出来的IP很多时候最后一段是有误差的,具体什么原因不清楚,同时也遇到过本地电脑在科学上网时造成本机外网IP地址的不清不楚。此时,就需要在你测试代码的服务器端,创建个文件,写入一段判断访问者IP地址的代码了就可以了,无论什么原因它都可以获取并且输出真实访问的IP地址了。所谓活学活用,至于为什么判断IP地址相信同行人都懂的。。。<?php
function get_real_ip()
{
$ip=false;

//客户端IP 或 NONE

if (!empty($_SERVER["HTTP_CLIENT_IP"])) {
$ip = $_SERVER["HTTP_CLIENT_IP"];
}

//多重代理服务器下的客户端真实IP地址(可能伪造),如果没有使用代理,此字段为空

if (!empty($_SERVER[‘HTTP_X_FORWARDED_FOR’])) {
$ips = explode(", ", $_SERVER[‘HTTP_X_FORWARDED_FOR’]);

if ($ip) {
array_unshift($ips, $ip);
$ip = false;
}

for ($i = 0; $i < count($ips); $i++) {
if (!eregi("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];

break;
}
}
}

//客户端IP 或 (最后一个)代理服务器 IP

return ($ip ? $ip : $_SERVER[‘REMOTE_ADDR’]);
}

echo get_real_ip();


本文出自快速备案,转载时请注明出处及相应链接。

本文永久链接: https://www.xiaosb.com/beian/53363/