>백엔드 개발 >PHP 튜토리얼 >geoip+php 예: IP를 통해 국가 이름과 코드 가져오기

geoip+php 예: IP를 통해 국가 이름과 코드 가져오기

WBOY
WBOY원래의
2016-08-08 09:28:191193검색

GeoIP + PHP 사용
방법 1:
GeoIP의 PHP 파일 geoip.inc를 다운로드하여 geoip.inc.php
http://sjolzy.cn/php/GeoIP/bak/geoip로 저장합니다. inc

php 사용 코드

<?php
include("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:
PHP 확장으로 GeoIP 설치
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
를 추가한 다음 restart php 그게 다입니다(nginx+php의 경우, apache+php는 다시 시작할 필요가 없습니다)
이제 PHP 매뉴얼
http://cn.php에서 GeoIP 기능 중 일부를 사용할 수 있습니다. net/manual/ en/book.geoip.php

참고: http://blog.csdn.net/prince2270/article/details/4592753

위는 geoip+php 예제를 소개합니다: 관련 내용을 포함하여 IP를 통해 국가 이름과 코드를 얻는 것이 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.