您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 百色分类信息网,免费分类信息发布

php根据ip获取地区的程序代码

2024/3/11 6:49:33发布23次查看
根据ip地址来获取用户所在的地区,这个需要借助一个外部api或一个数据库来记录ip地址是哪里的,下面我总结一些常用的方法给各位参考。
先用php获取本机的ip,再用php的curl函数来获取用户的详细地区.下面来看一下代码;
 代码如下 复制代码
/*
 * 这个函数是获取客户端和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;
}
方法一,利用qqwry.dat ip库,我们只胖乎乎
用简单的办法。
使用示例
示例一:
 代码如下 复制代码
$iplocation = new iplocation();
$client = $iplocation->getlocation();
print_r($client);
示例二:
 代码如下 复制代码
$iplocation = new iplocation('../qqwry/qqwry.dat');
$client = $iplocation->getlocation('115.148.101.72');
print_r($client);
具体的ip库与iplocation类文件这里不介绍了大家百度搜索吧。
方法二,利用api接口
示例一,
 代码如下 复制代码
  /**
  * 获取ip地区
  * enter description here ...
  * @param unknown_type $ip
  */
 function getarea($ip){
 $url = http://ip168.com/ip/?ip=.$ip;
 $contents = file_get_contents($url);
// preg_match_all('/
)/',$contents,$rs);
 preg_match_all('|本站主数据:.*
|',$contents,$rsr);
 $rsr[0][0] = str_replace(本站主数据:, , $rsr[0][0]);
 $rsr[0][0] = str_replace(
, , $rsr[0][0]);
 return $rsr[0][0];
 }
示例二,
下面这个函数是用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(/本 www.111cn.net 站主数据:(.*)/i, $jgarray[1],$ipp);return 
      欢迎来自 .$ipp[1]. 的朋友!
;}
echo lazdf(getip());//输出ip
欢迎来自长沙地区的朋友
百色分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录