用php根据ip获取地区的方法

6,766次阅读
没有评论

共计 960 个字符,预计需要花费 3 分钟才能阅读完成。

在很多网站上看到一进来就会显示“欢迎来自 XXXX 地区的朋友”,这样一句句小小的欢迎,但是给人一种温暖的感觉。对于 php 来说没这样的功能,但是可以变通一下。先用 php 获取本机的 ip, 再用 php 的 curl 函数来获取用户的详细地区. 下面来看一下代码;

 看看用到网站上的效果:http://www.sdzjw.net

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("/
  • (.*?)/i”,$ipdz,$jgarray);
    preg_match(“/ 本站主数据:(.*)/i”, $jgarray[1],$ipp);

    return “

          欢迎来自 “.$ipp[1].” 的朋友!

    “;

    }

    echo lazdf(GetIP());// 输出 ip

    点击这里看一下效果吧: 效果

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-09-12发表,共计960字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)