>백엔드 개발 >PHP 튜토리얼 >WordPress에서 PHP 스크립트를 사용하여 방문자가 어느 나라 출신인지 확인하세요_php 팁

WordPress에서 PHP 스크립트를 사용하여 방문자가 어느 나라 출신인지 확인하세요_php 팁

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB원래의
2016-05-16 20:03:121451검색

방문객의 국가를 구분하면 무슨 소용이 있나요?

다음은 이 기능을 활용한 몇 가지 예입니다.

1. 홈페이지 기능 차별화
이 블로그에는 해외 방문자들이 기사를 쉽게 읽을 수 있도록 하는 기능이 있지만 중국 사람들에게는 매우 중복되므로 IP로 국가를 판단하고 중국 본토에 대한 번역 기능을 차단합니다.

2. 디스플레이 광고 차별화

예를 들어 중국 본토에서는 사이드바 하단에 Hostucan 광고를 볼 수 있고, 다른 지역에서는 Google의 광고를 볼 수 있습니다. Hostucan은 제 광고주 중 하나이고, 영어와 중국어 웹사이트가 있어서 제공할 수 있습니다. 차별화된 디스플레이 서비스로 트래픽 낭비를 방지하세요.

3. 차폐 포인트 분배 서비스

해외에는 좋은 서비스 플랫폼이 많이 있는데, 사이트에 포인트를 넣어서 자료를 수집하고 기사를 공유할 수 있지만, 안타깝게도 어떤 이유로 중국에서는 원하는 효과를 얻지 못할 뿐만 아니라, 표시 효과도 좋지 않습니다. 페이지 로드 시간이 길어집니다.

PHP에서 IP로 국가 구분

PHP를 사용하여 IP로 국가와 지역을 구별하는 방법 Maxmind.com은 몇 가지 간단한 단계만 거치면 PHP에서 IP로 방문자의 국가를 확인할 수 있습니다.

1. 데이터베이스 및 PHP 라이브러리 파일 다운로드

GeoID.dat.gz를 다운로드하여 GeoIP.dat 파일로 추출합니다.
geoip.inc를 다운로드하세요. 2. PHP 코드를 통해 국가 정보 얻기
다음은 국가 코드와 국가 이름을 얻는 방법을 보여주는 샘플 코드입니다.

<&#63;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);
 
&#63;>

WordPress에서 IP로 국가 정의

PHP를 사용해도 괜찮으니 워드프레스도 괜찮을 것 같아요.

1. 장소 데이터베이스 파일

GeoIP.dat를 WordPress 루트 디렉터리로 추출합니다. (이 디렉터리에서 wp-config.php 또는 wp-config-sample.php 파일을 찾을 수 있습니다.)

2. 쓰기 호출 인터페이스

테마 디렉토리에 새로운 폴더를 생성하고, 그 폴더에 geoip.inc를 넣어주세요. 그리고 그 폴더에 새로운 파일인 geoip.php를 생성해 주세요.

<&#63;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);
 
&#63;>
여기에서는 국가 코드를 판단 기준으로만 사용하며, 국가 코드는 페이지의 여러 판단에 대한 정보를 얻고 프로그램 오버헤드를 줄이기 위해 GeoIP.dat에 반복적으로 액세스할 필요가 없도록 전역 변수입니다.

2. 인터페이스를 호출하고 국가 코드를 얻습니다

3. header.php 파일을 열고 파일 상단에 다음 코드를 추가하세요.

<&#63;php include('include/geoip.php'); &#63;>
4. 국가 코드를 사용하세요

테마에서 코드를 호출하는데, 예시는 다음과 같습니다.

<&#63;php
 
global $countryCode;
 
if($countryCode == 'CN') {
 // 中国大陆地区执行的代码
} else if($countryCode == 'US') {
 // 美国地区执行的代码
} else {
 // 中国大陆和美国以外地区执行的代码
}
 
&#63;>

이런 것을 추가하면 성능이 어떤지 묻는 분들도 계시겠지만, 강력한 서버가 필요할까요? 테스트해 봤는데 일반 서버에서는 페이지 로딩 성능에 거의 영향을 주지 않습니다. 이 블로그의 속도를 확인해 보세요. 잘 모르겠으면 잠시만 직접 테스트해 보세요.

PS: IP 쿼리 API 인터페이스 사용
Tencent, Sina, Taobao 등 많은 국내 인터넷 기업에는 직접 호출하여 쿼리할 수 있는 IP 쿼리 인터페이스가 있습니다.

(1) 텐센트 IP 공유 계획


코드 복사 코드는 다음과 같습니다.
/**Tencent IP Sharing Plan의 주소를 기반으로 IP 위치를 얻으면 더 정확합니다.*/function getIPLoc_QQ($ip1){$url = 'http://ip.qq.com/cgi-bin/searchip?searchip1='.$ip1;$ch = cur_init($url) ;curl_setopt($ch,CURLOPT_ENCODING ,'gb2312');curl_setopt($ch, CURLOPT_TIMEOUT, 10);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) // 데이터 가져오기 및 반환 $result =curl_exec($ch);$result = mb_convert_encoding($result, "utf-8", "gb2312"); // 인코딩 변환, 그렇지 않으면 코드가 깨집니다. cur_close($ch);preg_match("@45a2772a6b6107b401db3c9b82c049c2(.*)46869a0e1420ef785e8c72adb6469f1edesc) ) ) {$loc = $location->province.$location->city.$location->district.$location->isp;}else{$loc = $location->desc;}$ 반환 위치 ;}

(3) Taobao IP 인터페이스 사용

코드 복사 코드는 다음과 같습니다.

/*** Taobao IP 쿼리 인터페이스에 따라 IP 위치를 얻습니다.*/function getCity($ip){$url="http://ip.taobao.com/service/getIpInfo.php?ip=".$ip;$ip=json_decode(file_get_contents($ url));if((string)$ip->code=='1'){ return false } $data = (array)$ip->data;return $data;}


요약

IP를 통해 방문자의 출처를 파악하는 것은 매우 정확합니다. 이제 일부 외국 무역 웹사이트에서는 이 방법을 사용하여 사용자에게 표시하고 차별화합니다. 예를 들어 미국 사용자는 미국 및 미국 물류에서 사용할 수 있는 상품을 볼 수 있습니다. 하지만 100% 정확하지는 않습니다. 예를 들어, 누군가가 일년 내내 벽을 우회했다면, 그 사람은 자신의 나라의 정보를 볼 수 없을 수도 있습니다. 별도로 홈페이지에서 주로 고려합니다.

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