您当前的位置: 首页 > 网站编程 > PHP教程 > php根据ip获取地区的程序代码

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

作者:不详 来源:网络 发布时间: 2014-08-06 23:17 点击:
先用php获取本机的ip,再用php的curl函数来获取用户的详细地区.下面来看一下代码; 代码如下 /* * 这个函数是获取客户端和IP */ function GetIP() { if(!empty($_SERVER[HTTP_CLIENT_IP])) { $cip = $_SERVER[HTTP_CLIENT_IP]; } else if(!empty($_SERVER[HTTP_X_FORWARD

php根据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, $ci

ps);

  $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('/<h3[sS]*?(<a[sS]*?</h3>)/',$contents,$rs);

  preg_match_all('|<div>本站主数据:.*</div>|',$contents,$rsR);

  $rsR[0][0] = str_replace("<div>本站主数据:", "", $rsR[0][0]);

  $rsR[0][0] = str_replace("</div>", "", $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("/<ul class="ul1"><li>(.*?)</li>/i",$ipdz,$jgarray);

  preg_match("/本 www.111cn.net 站主数据:(.*)/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;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;欢迎来自&nbsp;<b>".$ipp[1]."</b>&nbsp;的朋友!</div>";

  }

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

  
分享到:
本文"php根据ip获取地区的程序代码"由远航站长收集整理而来,仅供大家学习与参考使用。更多网站制作教程尽在远航站长站。
顶一下
(0)
0%
踩一下
(0)
0%
[点击 次] [返回上一页] [打印]
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
关于本站 - 联系我们 - 网站声明 - 友情连接- 网站地图 - 站点地图 - 返回顶部
Copyright © 2007-2013 www.yhzhan.com(远航站长). All Rights Reserved .
远航站长:为中小站长提供最佳的学习与交流平台,提供网页制作与网站编程等各类网站制作教程.
官方QQ:445490277 网站群:26680406 网站备案号:豫ICP备07500620号-4