网站地图    收藏   

主页 > php专栏 > php应用 >

PHP查询ip所在地的几种方法 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] 根据IP地址查找我们的IP地址所在地,这个最简单办法就是直接把ip在百度搜索就可以知道你的IP地址所在地了,但对于一些网站我们不能使用此方法,但可以通过api来实现 例子,利用第三方接...

PHP查询ip所在地的几种方法

根据IP地址查找我们的IP地址所在地,这个最简单办法就是直接把ip在百度搜索就可以知道你的IP地址所在地了,但对于一些网站我们不能使用此方法,但可以通过api来实现.

例子,利用第三方接口实例,代码如下:

  1. <form action="" method="post"
  2.  <p>请输入ip地址:<input type="text" name="ip" /></p> 
  3.  <p><input type="submit" value="查询"  /></p> 
  4. </form> 
  5. <?php 
  6.  //获取ip地址 
  7.  //$ip = $_SERVER['REMOTE_ADDR'];    //自动获取客户端的IP 
  8.  //ip对应的地区 
  9.  if(!emptyempty($_POST['ip'])){ 
  10.   $ip = $_POST['ip']; 
  11.   //接口地址,这样返回的是一个xml结果集, 
  12.   $str = file_get_contents("http://www.yodao.com/smartresult-xml/search.s?type=ip&q=".$ip); 
  13.   //这里要得到里面的地址信息,提取xml方法有很多,我用的是正则。 
  14.   preg_match_all( "/<location>(.*?)</location>/",$str,$addr1); 
  15.   //最终结果,如图2; 
  16.   $addr = $ip."=>".$addr1[1][0]; 
  17.   echo $addr
  18.  } 
  19. ?> 

例子,利用QQWry,目前只支持PHP5版本.

安装:

1.sudo pecl install qqwry-beta或者直接下载编译,phpize && ./configure && make && sudo make install 

2.编辑php.ini,加入extension=qqwry.so 

3.重启http server 

使用很简单,首先就是实例化,传入纯真数据库的文件路径,然後调用q方法,该方法返回一个数组,第一个值为地址1,例如南宁市,第二个值为地址2,例如邕 宁区电信ADSL,看到子吧,一目了然。,下面的iconv是把数据从GB2312转到UTF-8,如果你的站点是用GB2312,那么这一步是不需要的,代码如下:

  1. $qqwry=new qqwry('QQWry.Dat'); 
  2. list($addr1,$addr2)=$qqwry->q('127.0.0.1'); 
  3. $addr1=iconv('GB2312','UTF-8',$addr1); 
  4. $addr2=iconv('GB2312','UTF-8',$addr2); 
  5. echo $addr1,'|',$addr2," "
  6. $arr=$qqwry->q('222.216.47.4'); 
  7. $arr[0]=iconv('GB2312','UTF-8',$arr[0]); 
  8. $arr[1]=iconv('GB2312','UTF-8',$arr[1]); 
  9. echo $arr[0],'|',$arr[1]," "
  10. $arr=$qqwry->q('64.233.187.99'); 
  11. $arr[0]=iconv('GB2312','UTF-8',$arr[0]); 
  12. $arr[1]=iconv('GB2312','UTF-8',$arr[1]); 
  13. echo $arr[0],'|',$arr[1]," "
  14. //输出: 
  15. //本机地址| 
  16. //广西南宁市|(青秀区)电信ADSL 
  17. //美国|加利福尼亚州Google公司 

例子,如果你只要查查IP地址就不需相面那么复杂了,如我在百度输入 110.110.110.110

显示地址为,IP地址:110.110.110.110黑龙江省哈尔滨市 铁通

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论