好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

根据IP地址来获取用户所在的地区,这个需要借助一个外部api或一个数据库来记录IP地址是哪里的,下面我总结一些常用的方法给各位参考,先用php获取本机的ip,再用php的curl函数来获取用户的详细地区,下面来看一下代码:

/*    * 这个函数是获取客户端和IP      */   function  GetIP()  {    if (! empty empty ( $_SERVER [ "HTTP_CLIENT_IP" ]))   {     $cip  =  $_SERVER [ "HTTP_CLIENT_IP" ];   }    else   if (! empty empty ( $_SERVER [ "HTTP_X_FORWARDED_FOR" ]))   {     $cip  =  $_SERVER [ "HTTP_X_FORWARDED_FOR" ];   }    else   if (! empty 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测试数据/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://HdhCmsTestip138测试数据/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; ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;欢迎来自&nbsp;<b>" . $ipp [1]. "</b>&nbsp;的朋友!</div>" ;    }    echo  lazdf(GetIP()); //输出phpfensi测试数据ip

查看更多关于php根据ip获取地区的程序代码 - php函数的详细内容...

  阅读:39次