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

WBOY
リリース: 2016-05-25 16:44:59
オリジナル
1868 人が閲覧しました

根据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[&#39;REMOTE_ADDR&#39;];    //自动获取客户端的IP
//ip对应的地区
if (!emptyempty($_POST[&#39;ip&#39;])) {
    $ip = $_POST[&#39;ip&#39;];
    //接口地址,这样返回的是一个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,那么这一步是不需要的,代码如下:

<?php
$qqwry = new qqwry(&#39;QQWry.Dat&#39;);
list($addr1, $addr2) = $qqwry->q(&#39;127.0.0.1&#39;);
$addr1 = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $addr1);
$addr2 = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $addr2);
echo $addr1, &#39;|&#39;, $addr2, " ";
$arr = $qqwry->q(&#39;222.216.47.4&#39;);
$arr[0] = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $arr[0]);
$arr[1] = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $arr[1]);
echo $arr[0], &#39;|&#39;, $arr[1], " ";
$arr = $qqwry->q(&#39;64.233.187.99&#39;);
$arr[0] = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $arr[0]);
$arr[1] = iconv(&#39;GB2312&#39;, &#39;UTF-8&#39;, $arr[1]);
echo $arr[0], &#39;|&#39;, $arr[1], " ";
//输出:
//本机地址|
//广西南宁市|(青秀区)电信ADSL
//美国|加利福尼亚州Google公司
?>
ログイン後にコピー

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

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


関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!