2021-10-03 16:47:40 +08:00
|
|
|
|
<?php
|
|
|
|
|
|
error_reporting(0);
|
|
|
|
|
|
date_default_timezone_set('PRC');
|
|
|
|
|
|
header('Access-Control-Allow-Origin: *');
|
|
|
|
|
|
header('Content-type: application/json');
|
|
|
|
|
|
// 应用API KEY
|
|
|
|
|
|
const API_KEY = "";
|
|
|
|
|
|
function curl_get($url){
|
|
|
|
|
|
$header = array(
|
|
|
|
|
|
'Accept: application/json',
|
|
|
|
|
|
);
|
|
|
|
|
|
$curl = curl_init();
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_URL, $url);
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_HEADER, 0);
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_TIMEOUT, 1);
|
2021-10-03 19:20:25 +08:00
|
|
|
|
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
|
2021-10-03 16:47:40 +08:00
|
|
|
|
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
|
|
|
|
|
|
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
|
|
|
|
|
|
$data = curl_exec($curl);
|
|
|
|
|
|
|
|
|
|
|
|
// 显示错误信息
|
|
|
|
|
|
if (curl_error($curl)) {
|
|
|
|
|
|
return "Error: " . curl_error($curl);
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 打印返回的内容
|
|
|
|
|
|
return ($data);
|
|
|
|
|
|
}
|
|
|
|
|
|
curl_close($curl);
|
|
|
|
|
|
}
|
2021-10-03 19:20:25 +08:00
|
|
|
|
|
|
|
|
|
|
function is_domain($domain){
|
|
|
|
|
|
$pat = "/^(\w+:\/\/)?([^\/]+)/i";
|
|
|
|
|
|
if(preg_match($pat, $domain, $matches)){
|
|
|
|
|
|
if($matches[2]){
|
|
|
|
|
|
return 1;
|
|
|
|
|
|
}else{
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}else{
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2021-10-03 16:47:40 +08:00
|
|
|
|
$ip = isset($_GET["ip"])?$_GET["ip"]:'';
|
2021-10-03 19:20:25 +08:00
|
|
|
|
if(!filter_var($ip, FILTER_VALIDATE_IP)){
|
|
|
|
|
|
//非合法IP则判断是否是域名
|
|
|
|
|
|
if(is_domain($ip)){
|
|
|
|
|
|
$ip = gethostbyname($ip); //是域名则获取该域名的IP
|
|
|
|
|
|
}else{
|
|
|
|
|
|
//既非IP也非域名,此处做错误任务处理
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2021-10-03 16:47:40 +08:00
|
|
|
|
$url = sprintf("https://apis.map.qq.com/ws/location/v1/ip?ip=%s&key=%s", urlencode($ip), API_KEY);
|
|
|
|
|
|
echo curl_get($url);
|