高育良 发布时间:March 18 Share 发布时间:March 18 无需其他接口即可获取 可根据下方代码写出判断ip、国家、运营商、是否机房ip、是否代理以进行跳转 相关参考代码: <?php /** * IP 查询接口 * 支持 ?ip=1.1.1.1 * 返回 JSON 格式: * {"country":"中国","province":"湖南","city":"长沙"} */ header('Content-Type: application/json; charset=utf-8'); error_reporting(0); require_once __DIR__ . '/geoip/vendor/autoload.php'; // 注意 vendor 路径 use GeoIp2\Database\Reader; $ip = isset($_GET['ip']) ? $_GET['ip'] : $_SERVER['REMOTE_ADDR']; // 简单校验 IP if(!filter_var($ip, FILTER_VALIDATE_IP)){ echo json_encode(['error'=>'请输入正确 IP']); exit; } try { // GeoLite2 数据库路径 $reader = new Reader(__DIR__ . '/geoip/GeoLite2-City.mmdb'); $record = $reader->city($ip); $country = $record->country->names['zh-CN'] ?? $record->country->name ?? ''; $province = $record->mostSpecificSubdivision->names['zh-CN'] ?? $record->mostSpecificSubdivision->name ?? ''; $city = $record->city->names['zh-CN'] ?? $record->city->name ?? ''; // 国内显示市 if($country === '中国'){ $city_name = $city ?: $province; } else { // 国外显示州/省,如果没有州显示国家 $city_name = $province ?: $country; } echo json_encode([ 'country' => $country, 'province' => $province, 'city' => $city_name ], JSON_UNESCAPED_UNICODE); } catch (Exception $e){ echo json_encode([ 'country' => '未知', 'province'=> '', 'city' => '未知' ], JSON_UNESCAPED_UNICODE); } { "country": "美国", "province": "弗吉尼亚州", "city": "弗吉尼亚州" } 下载地址 file-2026-02-16-02-45-03.zip Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now