澳门新葡萄京官网注册PHP查询ip所在地的几种方法(api实例)

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

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

今天分享一个PHP根据客户端IP地址获得所属地的小程序,以前写的,已经用了很久了,感觉这个接口还是停稳定的。虽然现在网上也有很多类似的,但是我觉得我这个还是很不错的,核心代码只用3行就能实现。虽然功能不是很强大,但是我们平时算是够用的。以下是代码:

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

 代码如下

 

代码如下 复制代码

<form action=www.111cn.net method=”post”>

 代码如下

form action= method=post

 <p>请输入ip地址:<input type=”text” name=”ip” /></p>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“;

p请输入ip地址:input type=text name=ip //p

 <p><input type=”submit” value=”查询”  /></p>

<html xmlns=”;

pinput type=submit value=查询 //p

</form>

<head>

/form

<?php

<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″
/>

?php

 //获取ip地址

<title>通过IP获取归属地</title>

//获取ip地址

 //$ip = $_SERVER[‘REMOTE_ADDR’];    //自动获取客户端的IP

</head>

//$ip = $_SERVER[‘REMOTE_ADDR’]; //自动获取客户端的IP

 //ip对应的地区

 

//ip对应的地区

 if(!empty($_POST[‘ip’])){

 

if(!empty($_POST[‘ip’])){

  $ip = $_POST[‘ip’];

 

$ip = $_POST[‘ip’];

  //接口地址,这样返回的是一个xml结果集,

图1 : 返回数据

//接口地址,这样返回的是一个xml结果集,

  $str =
file_get_contents(“);

 

$str = file_get_contents($ip);

  //这里要得到里面的地址信息,提取xml方法有很多,我用的是正则。

 

//这里要得到里面的地址信息,提取xml方法有很多,我用的是正则。

  preg_match_all(
“/<location>(.*?)</location>/”,$str,$addr1);

图2 : 查询成功

preg_match_all( /location(.*?)/location/,$str,$addr1);

  //最终结果,如图2;

 

//最终结果,如图2;

  $addr = $ip.”=>”.$addr1[1][0];

如果喜欢的话,可以试试,几行代码就能搞定,我觉得还是挺实用的!!

$addr = $ip.=.$addr1[1][0];

  echo $addr;

本文章来源于 代潇瑞博客 原文地址:

echo $addr;

 }

<body>

}

?>

<form action=”” method=”post”>

?

例子,利用QQWry

 <p>请输入ip地址:<input type=”text” name=”ip” /></p>

例子,利用QQWry

目前只支持PHP5版本。

 <p><input type=”submit” value=”查询”  /></p>

目前只支持PHP5版本。

安装

</form>

安装

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,那么这一步是不需要的。

<?php

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,那么这一步是不需要的。

 代码如下

 //获取ip地址

代码如下 复制代码

$qqwry=new qqwry(‘QQWry.Dat’);

 //$ip = $_SERVER[‘REMOTE_ADDR’];    //自动获取客户端的IP

$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,” “;

 //ip对应的地区

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],” “;

 if(!empty($_POST[‘ip’])){

$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],” “;

  $ip = $_POST[‘ip’];

$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], ;

输出:

  //接口地址,这样返回的是一个xml结果集,如图1;

输出:

本机地址|
广西南宁市|(青秀区)电信ADSL
美国|加利福尼亚州Google公司

  $str =
file_get_contents(“);

本机地址|广西南宁市|(青秀区)电信ADSL美国|加利福尼亚州Google公司

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

  //这里要得到里面的地址信息,提取xml方法有很多,我用的是正则。

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

显示地址为

  preg_match_all(
“/<location>(.*?)</location>/”,$str,$addr1);

显示地址为

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

  //最终结果,如图2;

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

如下图所示

  $addr = $ip.”=>”.$addr1[1][0];

如下图所示

澳门新葡萄京官网注册 1

  echo $addr;

 

 }

?>

</body>

</html>

图1 : 返回数据

澳门新葡萄京官网注册 2

图2 : 查询成功

澳门新葡萄京官网注册 3

如果喜欢的话,可以试试,几行代码就能搞定,我觉得还是挺实用的!!

发表评论

电子邮件地址不会被公开。 必填项已用*标注