加入收藏 | 设为首页 | 会员中心 | 我要投稿 天瑞地安资讯网_保定站长网 (https://www.52baoding.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2022-01-22 00:59:34 所属栏目:PHP教程 来源:互联网
导读:根据IP地址查找我们的IP地址所在地,这个最简单办法就是直接把ip在百度搜索就可以知道你的IP地址所在地了,但对于一些网站我们不能使用此方法,但可以通过api来实现. 例子,利用第三方接口实例,代码如下: form action= method=post p请输入ip地址:input type=te
  根据IP地址查找我们的IP地址所在地,这个最简单办法就是直接把ip在百度搜索就可以知道你的IP地址所在地了,但对于一些网站我们不能使用此方法,但可以通过api来实现.
 
  例子,利用第三方接口实例,代码如下:
 
  <form action="" method="post">
   <p>请输入ip地址:<input type="text" name="ip" /></p>
   <p><input type="submit" value="查询"  /></p>
  </form>
  <?php
   //获取ip地址
   //$ip = $_SERVER['REMOTE_ADDR'];    //自动获取客户端的IP
   //ip对应的地区
   if(!emptyempty($_POST['ip'])){
    $ip = $_POST['ip'];
    //接口地址,这样返回的是一个xml结果集,
    $str = file_get_contents("http://www.yodao.com/smartresult-xml/search.s?type=ip&q=".$ip);
    //这里要得到里面的地址信息,提取xml方法有很多,我用的是正则。
    preg_match_all( "/<location>(.*?)</location>/",$str,$addr1);
    //最终结果,如图2;
    $addr = $ip."=>".$addr1[1][0];
    echo $addr;
   }
  ?>
  例子,利用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,那么这一步是不需要的,代码如下:
 
  $qqwry=new qqwry('QQWry.Dat');
  list($addr1,$addr2)=$qqwry->q('127.0.0.1');
  $addr1=iconv('GB2312','UTF-8',$addr1);
  $addr2=iconv('GB2312','UTF-8',$addr2);
  echo $addr1,'|',$addr2," ";
  $arr=$qqwry->q('222.216.47.4');
  $arr[0]=iconv('GB2312','UTF-8',$arr[0]);
  $arr[1]=iconv('GB2312','UTF-8',$arr[1]);
  echo $arr[0],'|',$arr[1]," ";
  $arr=$qqwry->q('64.233.187.99');
  $arr[0]=iconv('GB2312','UTF-8',$arr[0]);
  $arr[1]=iconv('GB2312','UTF-8',$arr[1]);
  echo $arr[0],'|',$arr[1]," ";
  //输出:
  //本机地址|
  //广西南宁市|(青秀区)电信ADSL
  //美国|加利福尼亚州Google公司 

(编辑:天瑞地安资讯网_保定站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!