网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 PHP中实现获取IP和地理位置类分享
内容
    这篇文章主要介绍了PHP中实现获取IP和地理位置类分享,本文地理定位使用的是SINA的通用接口,需要的朋友可以参考下
    发现之前有一个脚本没有写完,简单扩充了一下。
    获取IP使用的是经典的逻辑,地理定位使用的是SINA的通用接口。
    使用方法详见源码:
    代码如下:
    <?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>
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 4:33:17