php实现IP定位

注册成为百度用户,成为地图开放平台开发者,获取服务密钥。通过百度地图API接口获取经纬度,进而通过API接口进行全球逆地理编码服务,简单说就是通过经纬度再次定位到具体位置。

代码为:

<!DOCTYPE  html>

<html>

<head>

<title>IP定位具体位置</title>

</head>

<body>

<form  action="" method="POST">

请输入公网IP:<input   type="text"   name="ip">

<input  type="submit"  name="submit" >

</form>

</body>

</html>

<?php

header("Content-Type:text/html;charset=utf-8;");

$ip=@$_POST['ip'];

//正则匹配IP

if (preg_match('/^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$/',$ip)){

$url_ip="http://api.map.baidu.com/location/ip?ip=$ip&ak=您的ak&coor=bd09ll";

//注册后得到的服务密钥ak

$str=file_get_contents($url_ip);

$arr=json_decode($str,true);

if ($arr["status"]==0){

$x=$arr['content']['point']['x'];

$y=$arr['content']['point']['y'];

$url="http://api.map.baidu.com/geocoder/v2/?callback=renderReverse&location=$y,$x&output=json&pois=1&ak=您的ak";

//注意y代表纬度,x代表精度

$str=file_get_contents($url);

//var_dump($str);

//以下自由发挥

preg_match("/{.+}/", $str, $result);

$arr=json_decode($result[0],true);

$num=count($arr["result"]["pois"]);

for ($i=0; $i < $num; $i++) {

echo '<font   color="#ff0000">'.$ip."-----".$arr["result"]["pois"][$i]["addr"]."<br/>";

}

}else{

echo "<h2>not find IP</h2>";

}

}else{

echo "<h2>not  really  IP</h2>";

}

?>

注意替换ak

附加一图:

IP定位

参考资料:

http://lbsyun.baidu.com/index.php?title=webapi/ip-api

http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,151评论 0 7
  • 梦里 我们用QQ攀谈 我克制自己的喜悦 你累字长篇显得十分激动 你到车站,我来接你,可以吗 慧玲 你,好不好 梦里...
    不想再用柯南作名字阅读 402评论 0 0
  • 我喜欢女孩子 她用朦胧的眼神看我 吃吃笑着的样子 她撇嘴或是敞开腿吃东西 都别有一番风姿 我喜欢女孩子 她柔软的腰...
    连云阅读 641评论 6 3
  • 婉若昨天白天没睡觉,七点就呼呼了,结果半夜一点起来上厕所,孩子爹要陪着。她死活不同意,非要把正在沉睡的我搞醒。[...
    乡下妞阅读 492评论 5 4
  • 1.《赖床》 每天将你轻放在脑海中入睡 每天在有你的梦中不愿醒来 2.《手机》 时而盯着手机屏幕傻笑 时而盯着手机...
    也不二阅读 180评论 5 4