用php根据ip获取地区的方法
在很多网站上看到一进来就会显示“欢迎来自XXXX地区的朋友”,这样一句句小小的欢迎,但是给人一种温暖的感觉。对于php来说没这样的功能,但是可以变通一下。先用php获取本机的ip,再用php的curl函数来获取用户的详细地区.下面来看一下代码;
set_time_limit(100);//设置程序运行时间。php默认是60秒。
/*
* 这个函数是获取客户端和IP
*
*
*/
function GetIP()
{
if(!empty($_SERVER["HTTP_CLIENT_IP"]))
{
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))
{
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
else if(!empty($_SERVER["REMOTE_ADDR"]))
{
$cip = $_SERVER["REMOTE_ADDR"];
}
else
{
$cip = '';
}
preg_match("/[\d\.]{7,15}/", $cip, $cips);
$cip = isset($cips[0]) ? $cips[0] : 'unknown';
unset($cips);
return $cip;
}
下面这个函数是用php的curl函数从网路上获取详细地区
function lazdf($ip){
$curl= curl_init();
curl_setopt($curl,CURLOPT_URL,"http://www.ip138.com/ips138.asp?ip=".$ip);
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
$ipdz=curl_exec($curl);
curl_close($curl);
preg_match("/<ul class=\"ul1\"><li>(.*?)<\/li>/i",$ipdz,$jgarray);
preg_match("/本站主数据:(.*)/i", $jgarray[1],$ipp);
return "<div class=\"global_widht global_zj zj\" style=\"background: none repeat scroll 0% 0% rgb(226, 255, 191); font-size: 12px; color: rgb(85, 85, 85); height: 30px; line-height: 30px; border-bottom: 1px solid rgb(204, 204, 204); text-align: left;\"> 欢迎来自 <b>".$ipp[1]."</b> 的朋友!</div>";
}
echo lazdf(GetIP());//输出ip
点击这里看一下效果吧:效果
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Sonhineboy 来源: web前端开发
- 标签: 地区
- 发布时间:2012-05-24 22:48:03
- [46] 界面设计速成
- [40] 视觉调整-设计师 vs. 逻辑
- [40] Oracle MTS模式下 进程地址与会话信
- [38] android 开发入门
- [38] IOS安全–浅谈关于IOS加固的几种方法
- [36] 程序员技术练级攻略
- [36] 如何拿下简短的域名
- [35] 图书馆的世界纪录
- [35] 【社会化设计】自我(self)部分――欢迎区
- [32] 读书笔记-壹百度:百度十年千倍的29条法则