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');
 
// 打开本地数据库, 数据保存在 GeoIP 文件中.
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($_SERVER['REMOTE_ADDR']);
$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();
}

猜你喜欢

转载自www.cnblogs.com/gujiu/p/9479741.html