下载 GeoIP 的 PHP 文件geoip.inc
http://sjolzy.cn/php/GeoIP/bak/geoip.inc
下载GeoIp 的数据库文件Geoip.dat
https://sjolzy.cn/php/GeoIP/bak/GeoIP.dat.gz
php使用代码
限制某个地区ip访问可以使用地区编号进行判断。
<?php // 引入 PHP 库文件 include ("geoip.inc"); $gi = geoip_open("GeoIP.dat",GEOIP_STANDARD); // 获取国家编号 $countryCode=geoip_country_code_by_addr($geoData,$_SERVER['REMOTE_ADDR']); // 获取国家名称 $countryName =geoip_country_name_by_addr($geoData,$_SERVER['REMOTE_ADDR']); // 关闭本地数据库 geoip_close($geoData); //判断用户是否是来自新西兰编号NZ,或澳洲编号AU if ($countryCode=="NZ" ||$countryCode=="AU") { exit(); }
获取用户相对比较真实的ip
<?php
//引入 PHP 库文件 include ('geoip.inc.php'); // 封装getIP来获取用户真实IP function getIp(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])) { $cip = $_SERVER["HTTP_CLIENT_IP"]; } else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } else if(!empty($_SERVER["REMOTE_ADDR"])) { $cip = $_SERVER["REMOTE_ADDR"]; } else { $cip = ''; } preg_match("/[\d\.]{7,15}/", $cip, $cips); $cip = isset($cips[0]) ? $cips[0] : 'unknown'; unset($cips); return $cip; } $ip=getIp();
$geoData = geoip_open('geoip.dat', "GEOIP_STANDARD"); // 获取国家 IP $countryCode=geoip_country_code_by_addr($geoData,$ip); // 获取国家名称 $countryName =geoip_country_name_by_addr($geoData,$ip); // 关闭本地数据库 geoip_close($geoData); //判断用户是否是来自新西兰编号NZ,或澳洲编号AU if ($countryCode=="NZ" ||$countryCode=="AU") { exit(); }