ホームページ >バックエンド開発 >PHPチュートリアル >PHP での IP と地理的位置の共有の取得の実装、IP 地理的位置_PHP チュートリアル

PHP での IP と地理的位置の共有の取得の実装、IP 地理的位置_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:07:111146ブラウズ

PHP、IP地理的位置の共有を実現する

以前書き終えていないスクリプトがあることがわかったので、単純に拡張しました。
IP の取得には従来のロジックが使用され、地理位置情報には SINA のユニバーサル インターフェイスが使用されます。

使用方法の詳細については、ソースコードを参照してください:

コードをコピーします コードは次のとおりです:

/*
 * SINA IPインターフェースで位置情報を取得
 *
 * @SOULTEARY 2013.04.14
 */
クラスIP
{
    プライベート $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;
        }その他{
            $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);
            }その他{
                $result=implode(',',$result);
            }
            if(isset($this->args['ECHO'])&&$this->args['ECHO']==true){
                エコー$結果;
                true を返す;
            }その他{
                $result を返す;
            }
        }その他{
 
            $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);
            }その他{
                $return=$this->ipCURL($apiURL);
                $return=iconv("GBK//IGNORE","UTF-8",$return);
            }
 
            if(isset($this->args['ECHO'])&&$this->args['ECHO']==true){
                エコー$リターン;
                true を返す;
            }その他{
                戻り$戻り;
            }
 
        }
 
    }
 
    public functioninit_args($args)
    {
        $result=array();
        for($i=0,$n=count($args);$i             $result=self::associative_push($args[$i],$result);
        }
        $result を返す;
    }
 
    public functionassociative_push($arr,$tmp)
    {
        if(is_array($tmp)){
            foreach($tmpas$key=>$value){
                $arr[$key]=$value;
            }
            $arr を返します;
        }
        returnfalse;
    }
 
    パブリック関数GetIP()
    {
        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'];
        }
    }
 
    プライベート関数ipCURL($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();
        $result を返す;
    }
}
 
?>


<頭>
    <メタ文字セット="utf8">
    デモ
    <スクリプトタイプ="text/javascript">
        varip="true, 'ECHO'=>true));?>";
        vardata='JSON','ECHO'=>true));?>;
        varresult='';
        for(oo 情報){
            result+=oo+':'+data[oo]+"n";
        }
        アラート(結果+IP);
   


コード:


 

GETIP


 

'ONLYIP'=>true、'ECHO'=>true


 

true,'ECHO'=>true));?>


 

'ONLYIP'=>true、'FORMAT'=>'JSON'、'ECHO'=>true


 

true,'FORMAT'=>'JSON','ECHO'=>true));?>


 

場所を取得


 

'エコー'=>true


 

true));?>


 

'FORMAT'=>'JSON','ECHO'=>true


 

'JSON','ECHO'=>true));?>




www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/955974.html技術記事 PHP で IP と地理的位置の共有が実行されますが、IP の地理的位置が公開される前に 1 つのスクリプトが未完成で、次のものが完了しています。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。