源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP中实现获取IP和地理位置类分享

  • 时间:2022-02-12 08:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP中实现获取IP和地理位置类分享
发现之前有一个脚本没有写完,简单扩充了一下。 获取IP使用的是经典的逻辑,地理定位使用的是SINA的通用接口。 使用方法详见源码:
[u]复制代码[/u] 代码如下:
<?php /*  * GET LOCATION BY SINA IP INTERFACE  *  *              @SOULTEARY 2013.04.14  */ classIP {     private $args=array();       function__construct()     {         $this->args=self::init_args(func_get_args());         $ip=self::GetIP();           $ret=preg_match_all('/(\d+\.){3}\d+/i',$ip,$result);         if(!$ret){             returnfalse;         }else{             $result=$result[0];         }           if(isset($this->args['ONLYIP'])&&$this->args['ONLYIP']==true){               if(isset($this->args['FORMAT'])&&$this->args['FORMAT']=='JSON'){                 $result=json_encode($result);             }else{                 $result=implode(',',$result);             }             if(isset($this->args['ECHO'])&&$this->args['ECHO']==true){                 echo$result;                 returntrue;             }else{                 return$result;             }         }else{               $apiURL='http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip='.$result[0];             if(isset($this->args['FORMAT'])&&$this->args['FORMAT']=='JSON'){                 $apiURL.='&format=json';                 $return=$this->ipCURL($apiURL);             }else{                 $return=$this->ipCURL($apiURL);                 $return=iconv("GBK//IGNORE","UTF-8",$return);             }               if(isset($this->args['ECHO'])&&$this->args['ECHO']==true){                 echo$return;                 returntrue;             }else{                 return$return;             }           }       }       public functioninit_args($args)     {         $result=array();         for($i=0,$n=count($args);$i<$n;$i++){             $result=self::associative_push($args[$i],$result);         }         return$result;     }       public functionassociative_push($arr,$tmp)     {         if(is_array($tmp)){             foreach($tmpas$key=>$value){                 $arr[$key]=$value;             }             return$arr;         }         returnfalse;     }       public functionGetIP()     {         if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])&&$_SERVER['HTTP_X_FORWARDED_FOR']&&strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'],'unknown')){             return$_SERVER['HTTP_X_FORWARDED_FOR'];         }elseif(isset($_SERVER['REMOTE_ADDR'])&&$_SERVER['REMOTE_ADDR']&&strcasecmp($_SERVER['REMOTE_ADDR'],'unknown')){             return$_SERVER['REMOTE_ADDR'];         }     }       private functionipCURL($url)     {         $ch=curl_init();         curl_setopt($ch,CURLOPT_URL,$url);         curl_setopt($ch,CURLOPT_HEADER,0);         ob_start();         curl_exec($ch);         curl_close($ch);         $result=ob_get_contents();         ob_end_clean();         return$result;     } }   ?> <!DOCTYPE html> <html> <head>     <meta charset="utf8">     <title>demo</title>     <script type="text/javascript">         varip="<?php new IP(array('ONLYIP'=>true, 'ECHO'=>true));?>";         vardata=<?php newIP(array('FORMAT'=>'JSON','ECHO'=>true));?>;         varresult='';         for(oo indata){             result+=oo+':'+data[oo]+"\n";         }         alert(result+ip);     </script> </head> <body> <h1>CODE:</h1>   <h2>GETIP</h2>   <p>'ONLYIP'=>true,'ECHO'=>true</p>   <p><?phpnewIP(array('ONLYIP'=>true,'ECHO'=>true));?></p>   <P>'ONLYIP'=>true,'FORMAT'=>'JSON','ECHO'=>true</P>   <p><?phpnewIP(array('ONLYIP'=>true,'FORMAT'=>'JSON','ECHO'=>true));?></p>   <h2>GET Location</h2>   <p>'ECHO'=>true</p>   <p><?phpnewIP(array('ECHO'=>true));?></p>   <p>'FORMAT'=>'JSON','ECHO'=>true</p>   <p><?php newIP(array('FORMAT'=>'JSON','ECHO'=>true));?></p> </body> </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部