IPで異なる国のユーザーを区別する

4699 ワード

PHPでIPで国を区別する
PHPはどのようにIPで国と地域を区別しますか?Maxmind.com GeoIPの一連のソリューションを提供し、簡単な数歩でPHPの中でIPを通じて訪問者の国を判断することができる.
1.データベースとPHPライブラリファイルのダウンロード
  • GeoID.dat.gzをダウンロードし、GeoIPに解凍する.datファイル
  • ダウンロードgeoip.inc.

  • 2.PHPコードによって国家情報を取得する以下は模範コードであり、国家番号と国家名を取得する方法を示す.
    <?php
    
     
    
    //    PHP    
    
    include("geoip.inc");
    
     
    
    //        ,       GeoIP    .
    
    $geoData = geoip_open('GeoIP.dat', GEOIP_STANDARD);
    
     
    
    //      IP
    
    $countryCode = geoip_country_code_by_addr($geoData, $_SERVER['REMOTE_ADDR']);
    
     
    
    //       
    
    $countryName = geoip_country_name_by_addr($geoData, $_SERVER['REMOTE_ADDR']);
    
     
    
    //        
    
    geoip_close($geoData);
    
     
    
    ?>

    ワードプレスでIPで国を区別する
    PHPで使えば問題ない以上、WordPressもOkayに違いない.私がどのように使っているか見てみましょう.
    1.データベースファイルを配置するGeoIP.datはWordPressルートディレクトリに解凍する.(このディレクトリでwp-config.phpまたはwp-config-sample.phpファイルを見つけることができます)
    2.呼び出しインタフェースを作成テーマディレクトリに新しいフォルダincludeを作成し、geoip.incは新しいフォルダに配置されます.フォルダにファイルgeoipを新規作成します.phpファイルの内容は以下の通りである.
    <?php
    
     
    
    include('geoip.inc');
    
     
    
    global $countryCode;
    
     
    
    $geoData = geoip_open('GeoIP.dat', GEOIP_STANDARD);
    
    $countryCode = geoip_country_code_by_addr($geoData, $_SERVER['REMOTE_ADDR']);
    
    geoip_close($geoData);
    
     
    
    ?>

    ここでは判別の根拠として国家番号のみをとる.また、国番号はグローバル変数である、ページの複数箇所での判断を避けるためにGeoIPへの繰り返しアクセスが必要である.dat情報を取得する、プログラムのオーバーヘッドを低減する.
    2.インタフェースを呼び出し、国番号3を取得する.開くphpファイルは、ファイルの上部に以下のコードを加える.
    <?php include('include/geoip.php'); ?>

    4.国番号を使用してトピックでコードを呼び出す例は以下の通りである.
    <?php
    
     
    
    global $countryCode;
    
     
    
    if($countryCode == 'CN') {
    
        //            
    
    } else if($countryCode == 'US') {
    
        //          
    
    } else {
    
        //                 
    
    }
    
     
    
    ?>

    まとめ
    IPを通じて訪問者の出所を判断するのは非常に正確で、今いくつかの対外貿易のウェブサイトはすべてこの方法を通じてユーザーに展示の区分を行って、例えばアメリカ地区のユーザーは米国が買える商品とアメリカの物流の情報を黙認して見ます.しかし、100%正確ではありません.例えば、ある人が長年FQをしていたとしたら、彼はずっと自国の情報を見ていないかもしれません.区別処理が必要かどうかについては、主にサイトが考慮している.
    こんなものを加えると、性能はどうですかと聞かれるかもしれません.強力なサーバが必要ですか?私はテストしたことがあります.正常なサーバーではページのロード性能にほとんど影響しません.このブログの速度を見ることができます.心配なら、自分で測ってください.