免费的ip地址查询API接口

免费查询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

请求HEADER:

名称
Content-Typeapplication/x-www-form-urlencoded;charset:utf-8;

请求参数说明:

名称必填类型示例值说明
keystring35kj5jnlj53453kl5j43nj5接口密钥,在控制台->密钥管理查看
ipstring8.8.8.8要查询的IP地址(ip和domain只可选其一)
domainstringwww.qq.com要查询的网址(无需加http://或https://)

返回参数说明:

名称类型说明
codeint状态码
msgstring状态信息
datastring查询结果
debugstring/array调试数据
exec_timefloat执行耗时
user_ipstring客户端IP

返回示例:

{

  • "code": 200,
  • "msg": "请求成功",
  • -

    "data": {
    • "ip": "8.8.8.8",
    • -

      "info": {
      • "ID": "3686",
      • "StartIPNum": "134744072",
      • "StartIPText": "8.8.8.8",
      • "EndIPNum": "134744072",
      • "EndIPText": "8.8.8.8",
      • "Country": "美国",
      • "Local": "加利福尼亚州圣克拉拉县山景市谷歌公司DNS服务器",
      • "lat": 38.8833,
      • "lng": -77,
      • "nation": "美国",
      • "province": "",
      • "city": "",
      • "district": "",
      • "adcode": "-1",
      • "update": "2023-04-05 22:11:50"
      }
    },
  • "debug": "",
  • "exec_time": 0.013738,
  • "user_ip": "183.219.42.60"

}

示例代码
 

<?php
/**
 * API请求DEMO
 * 
 * 本demo支持GET与POST请求,同时支持签名验证与无需签名。
 */

//你申请的key密钥
$API_KEY = '6qKzHyGFOQaXFsrrqFJFCXFSHg';

//API接口地址
$API_URL = 'https://api.bjjii.com/api/ipv2/query';

$get_post_data = array(
    //接口参数,一行一个,可按照接口文档-请求参数 的参数填写,或者直接复制开发工具下面的测试代码。
    'key' => $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/域名&运营商&地区&经纬度查询-凯哥数据

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值