免费查询ip地址接口,可查询指定IP的地理位置和运营商与经纬度,还可以查询网址的服务器IP地址位置和运营商信息。
接口地址:https://api.bjjii.com/api/ipv2/query
返回格式:application/json
请求方式:HTTPGET
请求示例:https://api.bjjii.com/api/ipv2/query?key=你的key&ip=8.8.8.8
名称 | 值 |
---|---|
Content-Type | application/x-www-form-urlencoded;charset:utf-8; |
名称 | 必填 | 类型 | 示例值 | 说明 |
---|---|---|---|---|
key | 是 | string | 35kj5jnlj53453kl5j43nj5 | 接口密钥,在控制台->密钥管理查看 |
ip | 是 | string | 8.8.8.8 | 要查询的IP地址(ip和domain只可选其一) |
domain | 否 | string | www.qq.com | 要查询的网址(无需加http://或https://) |
名称 | 类型 | 说明 |
---|---|---|
code | int | 状态码 |
msg | string | 状态信息 |
data | string | 查询结果 |
debug | string/array | 调试数据 |
exec_time | float | 执行耗时 |
user_ip | string | 客户端IP |
{
-
"data": {-
"info": {}
示例代码
$API_KEY,
'参数名' => '参数值',
);
//签名校验的 SK:(在用户控制台https://api.bjjii.com/user/key的秘钥安全设置->签名校验 开启后才会生效,没开启签名校验留空即可。)
$sk = '8246b7d78942fa5112ea093933bfbaca';
/*发起请求API接口:
第1个参数:API接口地址URL,跟上面的同名变量相对应,无需更改。
第2个参数:API接口参数数组,跟上面的同名变量相对应,无需更改。
第3个参数:请求协议(GET或POST),一般默认GET,部分接口需要POST请求,根据实际情况修改为POST即可。
第4个参数:是否验证签名,true验证签名,否则false不验证签名,根据用户控制台 https://api.bjjii.com/user/key 的 秘钥安全设置->签名校验 开启后才会生效,如没开启,填写false即可。
第5个参数:如果第4个参数开启验证签名,此处必须填写 SK ,跟上面的同名变量相对应,无需更改。
*/
$resdata = api::send($API_URL, $get_post_data, 'GET', true, $sk); //发起请求,注意这里要选择接口支持的协议,默认GET,可选POST
//打印请求结果
print($resdata);
///你的业务代码可写在这里处理API返回的数据
/**
* API请求类
*/
class api
{
public static function send($API_URL, $get_post_data, $type, $ifsign, $sk)
{
$get_post_data = http_build_query($get_post_data);
if ($ifsign) {
$sign = md5($get_post_data . $sk);
$res = self::send_curl($API_URL, $type, $get_post_data, $sign);
} else {
$res = self::send_curl($API_URL, $type, $get_post_data, null);
}
return $res;
}
//封装好的CURL请求函数,支持POST|GET
public static function send_curl($API_URL, $type, $get_post_data, $sign)
{
$ch = curl_init();
if ($type == 'POST') {
curl_setopt($ch, CURLOPT_URL, $API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $get_post_data);
} elseif ($type == 'GET') {
curl_setopt($ch, CURLOPT_URL, $API_URL . '?' . $get_post_data);
}
if ($sign) {
curl_setopt($ch, CURLOPT_HTTPHEADER, ['sign:' . $sign]);
}
curl_setopt($ch, CURLOPT_REFERER, $API_URL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$resdata = curl_exec($ch);
curl_close($ch);
return $resdata;
}
}
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class Test {
public static void main(String[] args) {
try {
URL url = new URL("https://api.bjjii.com/api/ipv2/query?key=6qKzHyGFOQaXFsrrqFJFCXFSHg");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
// 设置请求方式
connection.setRequestMethod("GET");
connection.connect();
// 获取响应码
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
// 读取到的内容给line变量
System.out.println(line);
}
reader.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
更多语言的示例代码看这里:【新版】IP/域名&运营商&地区&经纬度查询-凯哥数据