- 论坛徽章:
- 0
|
http://www.xjtuer.com/php-ip-to-city/
其实程序很简单,工作主要是对数据部分
分割ip段然后保存到数据库
用到的2个函数
function _GetIP()
{
$ip = false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip){
array_unshift($ips, $ip);
$ip = FALSE;
}
for ($i = 0; $i < count($ips); $i++){
if (!eregi ("^(10|172.16|192.16 .", $ips[$i])){
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
} |
function ip2city($ip)
{
global $DB;
$tmp_ip = explode(".", $ip);
$IP2Num=$tmp_ip['0']*256*256*256+$tmp_ip['1']*256*256+$tmp_ip['2']*256+$tmp_ip['3'];
$FirstRow = $DB -> queryFirstRow("select city,province from ip_address where '$IP2Num'>=ip1 and '$IP2Num'<=ip2 order by id desc");
$info = array(
'province' => $FirstRow['province'],
'city' => $FirstRow['city']
);
return $info;
} |
使用:
$ip = _GetIP();
$info = ip2city($ip);
$province = $info['province'];
$city = $info['city'];
呵呵,在cu注册很长时间了,也没贡献过什么东西,希望大家用的上,这个是之前做天气预报根据ip判断地区搞的,没什么技术含量,体力活倒是比较多,数据文件在附件了,用phpmyadmin直接导入就可以了
[ 本帖最后由 langyufeng 于 2008-3-17 13:11 编辑 ] |
|