日期:2014-05-16  浏览次数:20642 次

PHP通过IP 获取 地理位置(实例代码)

发布:JB02 ? 来源:脚本学堂?

分享一例php代码,实现通过IP地址获取访问者的地理位置,在php编程中经常用到,有需要的朋友参考下吧。本节内容:PHP通过IP获取地理位置

例子:
?

复制代码代码示例:

<?php
//取得访问者的物理地址
function get_client_dizhi($ip){

$doc = new DOMDocument();
$doc->load('http://www.youdao.com/smartresult-xml/search.s?type=ip&q='.$ip); //读取xml文件
$humans = $doc->getElementsByTagName( "smartresult" ); //取得humans标签的对象数组
foreach( $humans as $human )
{
$names = $human->getElementsByTagName( "product" ); //取得name的标签的对象数组
$name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name>
$sexs = $human->getElementsByTagName( "location" );
$sex = $sexs->item(0)->nodeValue;
}
return $sex;

}
//获取IP地址
// 获取客户端IP地址
function get_client_ip(){
?? if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
?????? $ip = getenv("HTTP_CLIENT_IP");
?? else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
?????? $ip = getenv("HTTP_X_FORWARDED_FOR");
?? else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
?????? $ip = getenv("REMOTE_ADDR"); // www.jbxue.com
?? else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
?????? $ip = $_SERVER['REMOTE_ADDR'];
?? else
?????? $ip = "unknown";
?? return($ip);
}

$ip=get_client_ip();
$dizhi=get_client_dizhi($ip);

附,新浪、有道、腾讯的Ip地址查询接口。

1,新浪 IP 地址查询接口:
http://counter.sina.com.cn/ip?ip=139.256.0.9
接口形式:http;
返回内容:javascript 片段;
查询地址:可以指定 IP 地址;

2,有道 IP 地址查询接口:
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=116.230.0.9
接口形式:http;
返回内容:xml 片段;
查询地址:可以指定 IP 地址;

3,腾讯 IP 地址查询接口:
http://fw.qq.com/ipaddress
接口形式:http;
返回内容:javascript 片段;
查询地址:不可以可以指定 IP 地址;

>>> 您可能感兴趣的文章:
PHP获取访问者IP地址的二种方法
php 操作IP地址库QQWry.dat的实例分享
php获取真实i