56 lines
1.5 KiB
PHP
56 lines
1.5 KiB
PHP
<?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);
|
||
curl_setopt($curl, CURLOPT_TIMEOUT_MS, 500);
|
||
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);
|
||
}
|
||
|
||
function is_domain($domain){
|
||
$pat = "/^(\w+:\/\/)?([^\/]+)/i";
|
||
if(preg_match($pat, $domain, $matches)){
|
||
if($matches[2]){
|
||
return 1;
|
||
}else{
|
||
return 0;
|
||
}
|
||
}else{
|
||
return 0;
|
||
}
|
||
}
|
||
|
||
$ip = isset($_GET["ip"])?$_GET["ip"]:'';
|
||
if(!filter_var($ip, FILTER_VALIDATE_IP)){
|
||
//非合法IP则判断是否是域名
|
||
if(is_domain($ip)){
|
||
$ip = gethostbyname($ip); //是域名则获取该域名的IP
|
||
}else{
|
||
//既非IP也非域名,此处做错误任务处理
|
||
}
|
||
}
|
||
$url = sprintf("https://apis.map.qq.com/ws/location/v1/ip?ip=%s&key=%s", urlencode($ip), API_KEY);
|
||
echo curl_get($url); |