公式 Web サイトの http://www.thinkphp.cn/extend/223.html で IP ポジショニング拡張クラス ライブラリをダウンロードするか、拡張パッケージ (http://www.thinkphp.cn/down/253) をダウンロードできます。 .html) この拡張クラスはすでに組み込まれています。アップロードしたクラスライブラリを別途ダウンロードした場合は、解凍した IpLocation.class.php を ThinkPHP/Extend/Library/ORG/Net/ ディレクトリ下に配置します (存在しない場合は手動で作成してください)。
1.IPアドレスを取得します
ユーザーがアクセスした IP アドレスのみを取得する必要がある場合は、システムの組み込み get_client_ip 関数を直接使用できます。この関数は ThinkPHP 標準モードの組み込みメソッドであり、より効率的です。 PHP の組み込みシステム変数 $_SERVER['HTTP_CLIENT_IP'] よりも優れた互換性、使用法:
get_client_ip は、取得した IP アドレスが不正な場合は 0.0.0.0 を返します。
必要に応じて、たとえば、IPV4 アドレス番号を返すこともできます:
返される結果は次のようになります:
2. IP アドレスの測位
IP アドレスを取得するだけでは、アプリケーションのニーズを完全に満たすことはできません。IP アドレスの測位機能を使用すると、ユーザーの領域を取得できます。 IP ポジショニング機能を使用するには、IpLocation 拡張クラス ライブラリに加えて、IP アドレス ライブラリ ファイルも必要です。ThinkPHP はデフォルトで UTF8 エンコーディングを使用するため、UTF8 形式の IP アドレス ライブラリ ファイルを使用するのが最適です。純粋な gbk でエンコードされた IP アドレス ライブラリ ファイルの場合は、取得した結果に対してエンコード変換を実行する必要があります (後述)。UTF8 でエンコードされたアドレス ライブラリ ファイルは、http://www.thinkphp.cn/extend/270.html からダウンロードできます。
解凍されたアドレス ライブラリ ファイル IpLocation 拡張クラス ライブラリが配置されているディレクトリに UTFWry.dat を置くだけです。
使用方法:
返されるロケーション変数は、以下を含む配列です:
通常、IP ロケーションを取得したい場合は、国と地域の情報を取得するだけです:
使用する IP アドレス ライブラリ ファイルが UTFWry.dat ではない場合 (Linux でのファイル名の大文字と小文字も一貫している必要があることに注意してください)、IpLocation クラスをインスタンス化するときにアドレス ライブラリ ファイル名を渡す必要があります。 :
IP アドレス ライブラリが GBK でエンコードされている場合は、返された結果に対してエンコード変換を実行する必要があります。例:
getlocation メソッドを呼び出すときにパラメーターが渡されない場合、システムは上記の get_client_ip 関数を自動的に呼び出して、現在の IP アドレスを取得します:
IP アドレスを自動的に取得するためにドメイン名を渡すこともサポートできます
純粋な IP アドレス ライブラリを使用している場合、または IP 測位クエリを容易にするために別のアドレス ライブラリに変更する必要が頻繁にある場合は、位置情報を取得する別の関数をカプセル化することもできます。こちらを参照してください: http://www .thinkphp.cn /code/88.html