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; "> 欢迎来自 <b>" . $ipp [1]. "</b> 的朋友!</div>" ; } echo lazdf(GetIP()); //输出phpfensi测试数据ip查看更多关于php根据ip获取地区的程序代码 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30894