PHP+JS获取用户IP地址对应的物理地址

文章作者:中山市飞娥软件工作室「Feiesoft.com」  浏览次数:5913 次  更新日期:2013-10-15

<input type="address" size="55" id="user_addr" />

<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

<script type="text/javascript" src="http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip="><?php echo $_SERVER['REMOTE_ADDR']; ?>"></script>

<script type="text/javascript">

$(function(){
 //获取用户IP地址对应的物理地址
 
 //调用新浪网的IP地址库链接:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=183.33.127.255
 //ip=183.33.127.255中的IP的地址即
 //返回的JavaScript原生数据:var remote_ip_info = 
 {"ret":1,"start":"183.32.0.0","end":"183.33.127.255"
 ,"country":"u4e2du56fd","province":"u5e7fu4e1c",
 "city":"u4e2du5c71","district":"","isp":"u7535u4fe1",
 "type":"","desc":""};
 //下面对上面的数据定义整理一下,其实就是一个JS对象remote_ip_info:
 // var remote_ip_info = {
  // "ret":1,
  // "start":"183.32.0.0",
  // "end":"183.33.127.255",
  // "country":"u4e2du56fd",
  // "province":"u5e7fu4e1c",
  // "city":"u4e2du5c71",
  // "district":"",
  // "isp":"u7535u4fe1",
  // "type":"",
  // "desc":""
 // };
 
 //下面定义地址文本框user_addr绑定一个单击事件,
 //处理:用户单击时,如果输入框中的内容为空时,写入用户线路IP地址对应的物理地址,形如:中国广东中山
 $("#user_addr").click(function(){
  if($("#user_addr").val() == ""){
   //引用对象remote_ip_info的对应字段,country=国家名称,province=省份名称,city=城市,district=县、区,
   //这里中山是没有县的,所以新浪的IP地址库只提供到城市。
   $("#user_addr").val(remote_ip_info.country + remote_ip_info.province + 
			remote_ip_info.city + remote_ip_info.district);
  }
 });
});
 //当然,如果你的项目中不需要用到 jquery库,可将紧接上面的代码改为:
 var $ = function(id){return document.getElementById(id);};
 $("user_addr").onclick = function(){
  if($("user_addr").value== ""){
   $("#user_addr").value = remote_ip_info.country + remote_ip_info.province +
		remote_ip_info.city + remote_ip_info.district;
  }
 }

</script>