特别是在做外贸仿牌的一些网站主,经常不希望国内用户去访问他们的站点,因为网站模板和产品被盗用,因此用 PHP 查询ip所在国家的办法,以下会介绍使用 MaxMind 的函数实现,首先到到下面的网址中下载MaxMind 函数
http://www.inyhow.com/geoip.inc
http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
将上面的 GetIP.dat.gz 解压,然后可以用以下PHP代码实现:
include("geoip.inc");
// 要解压的 ip,实际测试的时候,将ip换成$_SERVER['REMOTE_ADDR']就可以了
$test_ip = "126.123.123.123"; //这个是日本的测试IP
$gi = geoip_open("GeoIP.dat", GEOIP_STANDARD);
echo geoip_country_code_by_addr($gi, $test_ip);
// 获取国家名称
$country_name = geoip_country_name_by_addr($gi, "126.123.123.123");
echo "您的国家是: $country_name ";
//这边其实可以通过上面得到的CN代码或国家名判断是否是中国的,然后禁止ip或跳转到其他地方。
geoip_close($gi);