推薦兩個方法,一個是nginx,第二是php裡面$ T8 Y4 @3 e' A& s% B
兩者都要用上geoip,這個是maxmind的免費ip全球數據庫- y4 \% A+ V' F1 s/ J6 ]" J. Y- v
- V6 O/ v# T/ R$ `
1.nginx
; ?5 X9 A4 h' N. X6 w9 U0 s8 enginx裡面有模塊叫ngx_http_geo_module,編譯的時候加上這個模塊就能使用了,% A* Y. N5 U, j5 M8 {
給個nginx配置文件實例
9 k( ` M: f z$ ?; B+ U% f* `6 Z* k d# I
# vi /etc/nginx/nginx.conf6 V9 q: h/ V4 |
( e% S8 M7 B; `, O; N! f
http {/ p q/ m& D8 _2 q5 C& e% p& b
...5 i6 l$ k; H; g! h
geoip_country /var/lib/GeoIP/GeoIP.dat;: n: L- |- B! P A+ Y S g1 H
fastcgi_param GEOIP_COUNTRY_CODE $geoip_country_code;' O0 Y, u& ~ [& G
fastcgi_param GEOIP_COUNTRY_CODE3 $geoip_country_code3;7 i# n3 ~4 T! h- u% h2 z6 ]0 a
fastcgi_param GEOIP_COUNTRY_NAME $geoip_country_name;; N3 G& i2 T! O4 G8 d
...- _7 v& F. |) {5 A) n* I, v
}
/ _; F$ a/ w% i! B, {
4 }! X% m1 v) A1 w. T% x8 Xserver {
9 W# y8 w. ~, w...
0 K9 N- p( I; s. N6 e; J% k6 m, f) D, m location / {) d! z- |# V0 k+ i: C5 f* @
root /home/vpsee/www;
% |) n4 d4 H6 a6 L+ O if ($geoip_country_code !~* JP) { return 404;}" u' t9 x1 n6 D3 L' o
#如果不匹配jp,那就404,只有jp能通過
3 {- h/ _9 \/ n% x ...
9 b( |2 z" s. M2 j" H9 a: i }
, l7 |" I0 |% M& w" {4 o& U...5 Q8 M/ O' \; S9 x2 T/ m; L' J5 p
}
5 `2 Z& ?5 p* u' m
1 F" T5 w8 k- |4 ?2.php,, h0 |' H* c- c1 v/ U
這個比較簡單,不需要安裝什麼,只要下載到幾樣東西就可以了
1 k# K) C2 f7 J2 {1 ]1 ~7 z0 Y數據庫文件GeoIP.dat
$ f8 N& D% Z8 x4 ^, e6 Y5 vhttp://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz7 x3 A1 H! _5 z- \- \
. X/ x2 Y- Y# W& l# o
再加上個數據庫讀取文件,保存為 geoip.php4 T ]; s: C; ]( D0 L
http://geolite.maxmind.com/download/geoip/api/php/geoip.inc* z% Z) y7 v6 e% a
& \+ d2 ?; b1 {+ q$ Q" K一下這段代碼貼到自己想要進行判斷的頁面就行了% W# U- u' Q1 Q% s! W; X! t
; E2 `9 D2 _4 ^* X
[mw_shl_code=php,true] //geophp的位置" K' n& \- ]" ]8 P# `8 v0 z
include ('geoip.php'); # g; ?" R1 Z+ y- }; e9 R7 t
// GEOIP數據庫位置
/ E% z. g+ ?) N $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);# a y3 L& t3 u9 l2 N# h2 N
% N/ D8 l% S' X+ f
$country = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
- A! m0 V5 _) Q geoip_close($gi);8 F0 d' M3 v( f
" Q; [* J% `3 S. o) F8 m* D* z# F
if($country=='jp') {;} else {exit;}[/mw_shl_code]
" W% X6 F6 U- J( p, s% N+ q# Q$ w7 a
|