不管是在现实中还是网页开发需要,我们经常会问到这个IP地址对应的用户在什么地方。今天呢波波就为朋友们分享一个简单的生活小窍门,自己动手打造一个IP地址定位系统。
其实代码很简单,在这里我们主要利用http三次握手建立连接的原理,结合PHP的基本函数进行实现获取客户IP的函数主要有三个:
1、HTTP_X_FORWARDED_FOR :是用户到达最终访问地时经过的路径访问点(包括自身和使用的多层代理)的IP列表。依然取决于代理的设置,可通过http头伪造。
2、HTTP_CLIENT_IP :是代理服务器设置发送的HTTP头,代表你的客户端的真实IP。当然,人家可以选择设置与否以及设置成什么样。可通过http头伪造。
3、$_SERVER["REMOTE_ADDR"] ,取得客户端的 IP 地址;第三种的用法非常简单但是一般不建议用第三种。
下面我们首先通过一段代码获取用户真实的IP地址:
<?php
$ip = getClientIP();
function getClientIP() {
global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
return $ip;
}
?>
这样我们就拿到了用户的IP地址,接下来需要做的就是根据IP地址对用户进行定位。关于IP定位时需要一个非常强大的IP地址库,对于一般用户很难做到,所以多数情况下我们可以借助于百度地图,高德地图,淘宝IP库或者QQIP库,我们以淘宝IP库为例来分享一下IP地址定位。如需更多技术文章,欢迎访问波波的个人博客——波波助手(www.5ibobo.com)
请将下面代码放在$ip=getClientIP()后面:
$url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
$arr = file_get_contents($url);
$data = json_decode($arr,true);
echo "ip地址为:".$ip."的用户位置为:".$data['data']['city'];
好了,今天的分享就先到这里,关注波波头条号,每天都有不一样的精彩哟~~~
本文暂时没有评论,来添加一个吧(●'◡'●)