必须的必啊,先通过“ 晋阳子 / ​​php-iplocation​​”,通过他能获取到地理范围,如下

获取ip对应的省市区_php


获取ip对应的省市区_开发语言_02


而我需要的是禁止国内或者国外登录,所以我简单的加了一点别的东西

$ip = new Realip;
$res = $ip->getLocation('123.233.16.230');
// var_dump($res);die;
//全国省
$China=[ '北京市', '天津市', '河北省', '山西省', '内蒙古自治区', '辽宁省', '吉林省', '黑龙江省', '上海市', '江苏省', '浙江省', '安徽省',
'福建省', '江西省', '山东省', '河南省', '湖北省', '湖南省', '广东省', '广西壮族自治区', '海南省', '重庆市', '四川省', '贵州省', '云南省', '西藏自治区', '陕西省', '甘肃省', '青海省', '宁夏回族自治区', '新疆维吾尔自治区', '台湾省', '香港特别行政区', '澳门特别行政区'];
//获取ip地址中的省
preg_match('/(.*?(省|自治区|北京市|天津市))/', $res["country"], $matches);
if (count($matches) > 1) {
$province = $matches[count($matches) - 2];

}
//判断是否是中国的
if (in_array($province, $China))
{

$this->error(__('国内禁止访问'), null, 2030);die;
}