PHP服务器端的程序,只要查询出客户端IP地址归属地以后,就可以在此基础上加以灵活应用。例如,针对来自不同的ISP的访问,返回不同的网页内容。或者根据用户所在的城市,跳转到该城市的地方网站。
这里是一个简单的区分不同的ISP的小程序。节选部分代码:
<?php
//获取当前用户的ip
$ip = get_client_ip();
echo "您的IP地址: $ip <br/><br/>";
//查询淘宝的IP地址库
$isp_name = query_ispname_by_taobao($ip);
if ($isp_name == false) {
// 如果失败,则查询新浪IP地址库
$isp_name = query_ispname_by_sina($ip);
}
echo "您所属的ISP为:$isp_name <br/>";
if (strpos($isp_name,"联通") !== false) {
echo "处理联通用户的请求<br/>";
} else if (strpos($isp_name,"电信") !==false) {
echo "处理电信用户的请求 <br/>";
} else {
echo "处理其它ISP用户的请求 <br/>";
}
function query_ispname_by_taobao($ip) {
// 淘宝IP查询的接口
$url = "http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;
if ($result = @file_get_contents($url)) {
$ip_info = json_decode($result);
if((string)$ip_info->code=='0'){
$info = $ip_info->data;
return $info->isp;
} else {
// 查询出错
}
} else {
// 接口不可用
}
return false;
}
function query_ispname_by_sina($ip) {
// 新浪IP查询的接口
$url = "http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=".$ip;
if ($result = @file_get_contents($url)) {
$ip_info = json_decode($result);
return $ip_info->isp;
} else {
// 接口不可用
}
return false;
}
?>