php使用geoip通过用户ip获取信息


下载 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(); }
posted @ 2018-08-15 09:59  孤久  阅读(2270)  评论(0编辑  收藏  举报