PHP查询ip所在地的几种方法(api实例)

例子,利用第三方接口实例

 代码如下 复制代码

<form action=www.111cn.net 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(!empty($_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公司

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

显示地址为

IP地址: 110.110.110.110黑龙江省哈尔滨市 铁通

如下图所示


 

时间: 2024-07-31 17:17:27

PHP查询ip所在地的几种方法(api实例)的相关文章

php查询ip所在地的方法_php技巧

本文实例讲述了php查询ip所在地的方法.分享给大家供大家参考. 具体实现方法如下: 复制代码 代码如下: <?php /** *@ date         2010.12.21 注:文件头 [第一条索引的偏移量 (4byte)] + [最后一条索引的偏移地址 (4byte)]     8字节 记录区 [结束ip (4byte)] + [地区1] + [地区2]                                4字节+不定长 索引区 [开始ip (4byte)] + [指向记录区

PHP获取用户访问IP地址的5种方法

PHP获取用户访问IP地址的5种方法: <?php                                                                                                                                 //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ip; //方法2: $user_IP = ($_SERVER["HTTP_V

Android 调用系统相机拍摄获取照片的两种方法实现实例_Android

Android 调用系统相机拍摄获取照片的两种方法实现实例 在我们Android开发中经常需要做这个一个功能,调用系统相机拍照,然后获取拍摄的照片.下面是我总结的两种方法获取拍摄之后的照片,一种是通过Bundle来获取压缩过的照片,一种是通过SD卡获取的原图. 下面是演示代码: 布局文件: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http:

获知对方计算机ip地址的三种方法

那么对方的IP地址该如何搜查得到呢?这样的问题你也许会嗤之以鼻,的确,查询对方计算机的IP地址,实在简单得不值得一提;可是,要让你列举出多种IP 地址搜查方法时,你可能就感到勉为其难了.下面,本文就对如何快速.准确地搜查出对方好友的计算机IP地址,提出如下几种方法,相信能对大家有所帮助! 1.邮件查询法 使用这种方法查询对方计算机的IP地址时,首先要求对方先给你发一封电子邮件,然后你可以通过查看该邮件属性的方法,来获得邮件发送者所在计算机的IP地址;下面就是该方法的具体实施步骤: 首先运行Out

ASP.NET获取真正的客户端IP地址的6种方法_实用技巧

在ASP中使用 Request.ServerVariables("REMOTE_ADDR") 来取得客户端的IP地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的IP地址,而不是真正的客户端IP地址. 要想透过代理服务器取得客户端的真实IP地址,就要使用 Request.ServerVariables("HTTP_X_FORWARDED_FOR") 来读取. 不过要注意的事,并不是每个代理服务器都能用 Request.ServerVariables(

ORACLE查询删除重复记录三种方法_oracle

比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 复制代码 代码如下: select p1.*   from persons  p1,persons  p2   where p1.id<>p2.id   and  p1.cardid = p2.cardid and p1.pname = p2.pname and p1.address = p2.address 可以实现上述效果. 几个删除重复记录的SQL语句 1.用rowid方法 2.用g

Windows 7查自己上网ip地址的4种方法

方法一:进入到搜索引擎,如我们打开百度,然后直接输入"IP" 就会显示出你的IP地址了,这个方法最简单了. 方法二:利用命令模式,我们打开"开始"->运行然后输入"cmd" 在打开CMD界面输入"ipconfig"回车即可看到自己的ip地址. 方法三:利用网络连接,我们在控制面板进入到"网络和共享中心"-"无线网络连接"-然后点击"详细信息" 里面会有你的IP地

PHP获取用户访问IP地址的5种方法_php技巧

本文实例为大家分享了5种PHP获取用户访问IP地址的方法,供大家参考,具体内容如下 <?php //方法1: $ip = $_SERVER["REMOTE_ADDR"]; echo $ip; //方法2: $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"]; $user_IP = ($

查询SQLServer启动时间的三种方法_MsSql

上午在分析索引的使用情况,想看一下数据库什么时候启动的,确保统计的数据没有问题,可以使用下面三种方法查询: --2008及之后版本才有 SELECT sqlserver_start_time FROM sys.dm_os_sys_info select crdate from master..sysdatabaseswherename='tempdb' SELECT login_time FROMsysprocesses WHEREspid= 1 以上是小编为您精心准备的的内容,在的博客.问答.