ホームページ >バックエンド開発 >PHPチュートリアル >geoip php のデモンストレーション: IP を介して国名とコードを取得する

geoip php のデモンストレーション: IP を介して国名とコードを取得する

WBOY
WBOYオリジナル
2016-06-13 12:16:171119ブラウズ

geoip php の例: IP を通じて国名とコードを取得する
GeoIP + PHP の使用法


方法 1:


GeoIP の PHP ファイル geoip.inc をダウンロードします。 geoip.inc.php として保存


http://sjolzy.cn/php/GeoIP/bak/geoip.inc


php 使用コード


<?phpinclude("geoip.inc.php");$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);$country_code = geoip_country_code_by_addr($gi, $_SERVER[&#39;REMOTE_ADDR&#39;]);$country_name = geoip_country_name_by_addr($gi, $_SERVER[&#39;REMOTE_ADDR&#39;]);geoip_close($gi);$jsonEcho = array();$jsonEcho["error"] = 0;$jsonEcho["country_code"] = $country_code;$jsonEcho["country_name"] = $country_name;function jsonp($object, $callback = &#39;callback&#39;) {		if (!empty($_GET[$callback])) {			header(&#39;Content-Type: application/x-javascript&#39;);		} else {						header(&#39;Content-Type: application/json&#39;);		}		return $_GET[$callback].&#39;(&#39;.json_encode($object).&#39;)&#39;;}echo jsonp($jsonEcho);?>

注: ローカルでテストする場合、$_SERVER['REMOTE_ADDR'] と $_SERVER['REMOTE_ADDR'] は 127.0.0.1 になる可能性があるため、出力は中身は空です。 IP テストは自分で行うことができます


方法 2:

GeoIP を PHP 拡張機能としてインストールします
yum install GeoIP GeoIP-data GeoIP-devel


GeoIP データベースをダウンロード
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat / var/ lib/GeoIP/GeoIPCity.dat


GeoIP の PECL 拡張機能をダウンロードします
ダウンロード アドレス http://pecl.php.net/package/geoip
wget -c http: //pecl .php.net/get/geoip-1.0.7.tgz
tar -zxvf geoip-1.0.7.tgz


GeoIP PECL 拡張機能をインストールします
cd geoip-1.0 .7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-geoip
make
make install


php.ini に
extension=geoip.so


を追加し、php を再起動します (nginx+php の場合、 apache +php、再起動する必要はありません)
これで、php マニュアルの GeoIP 関数の一部を使用できるようになります
http://cn.php.net/manual/en/book.geoip.php


参考: http://blog.csdn.net/prince2270/article/details/4592753




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。