Skip to content

IP 位置查询

可以获取本机 IP 地址,输入 IP 还可以查询对应的归属地信息,地理位置信息可以精确到运营商和国家、省市级别。

接口地址

http
https://api.nxvav.cn/api/ip/

IP 地址位置数据由 纯真 CZ88 提供支持

请求示例

Shell
curl --location --request GET "https://api.nxvav.cn/api/ip"
JavaScript
var requestOptions = {
   method: 'GET',
   redirect: 'follow'
};

fetch("https://api.nxvav.cn/api/ip", requestOptions)
   .then(response => response.text())
   .then(result => console.log(result))
   .catch(error => console.log('error', error));
Java
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://api.nxvav.cn/api/ip")
   .asString();
Swift
import Foundation
#if canImport(FoundationNetworking)
import FoundationNetworking
#endif

var semaphore = DispatchSemaphore (value: 0)

var request = URLRequest(url: URL(string: "https://api.nxvav.cn/api/ip")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in 
   guard let data = data else {
      print(String(describing: error))
      semaphore.signal()
      return
   }
   print(String(data: data, encoding: .utf8)!)
   semaphore.signal()
}

task.resume()
semaphore.wait()
Go
package main

import (
   "fmt"
   "net/http"
   "io/ioutil"
)

func main() {

   url := "https://api.nxvav.cn/api/ip"
   method := "GET"

   client := &http.Client {
   }
   req, err := http.NewRequest(method, url, nil)

   if err != nil {
      fmt.Println(err)
      return
   }
   res, err := client.Do(req)
   if err != nil {
      fmt.Println(err)
      return
   }
   defer res.Body.Close()

   body, err := ioutil.ReadAll(res.Body)
   if err != nil {
      fmt.Println(err)
      return
   }
   fmt.Println(string(body))
}
PHP
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL => 'https://api.nxvav.cn/api/ip',
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_ENCODING => '',
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 0,
   CURLOPT_FOLLOWLOCATION => true,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
Python
import requests

url = "https://api.nxvav.cn/api/ip"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)
C
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
   curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
   curl_easy_setopt(curl, CURLOPT_URL, "https://api.nxvav.cn/api/ip");
   curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
   curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
   struct curl_slist *headers = NULL;
   curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
   res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
C#
var client = new RestClient("https://api.nxvav.cn/api/ip");
client.Timeout = -1;
var request = new RestRequest(Method.GET);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);
Ruby
require "uri"
require "net/http"

url = URI("https://api.nxvav.cn/api/ip")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body

请求参数

参数名类型必填说明
ipstring输入需要查询的 IP,不填默认获取当前 IP
formatstring输出格式,可选值jsjsonjsonptextxml,不填默认json

返回响应

字段名类型说明
codeinteger状态码
datastringip 数据
data > ipstringip 地址
data > ipVersionstringip 协议版本
data > countryNamestring国家
data > regionNamestring省份
data > cityNamestring城市
data > districtNamestring地区
data > internetServiceProviderstring运营商

返回示例

json
{
  "code": 200,
  "data": {
    "ip": "114.114.114.114",
    "ipVersion": "ipv4",
    "countryName": "中国",
    "regionName": "江苏",
    "cityName": "南京",
    "districtName": null,
    "internetServiceProvider": "南京信风网络科技有限公司GreatbitDNS服务器"
  }
}
json
{
  "code": 201,
  "msg": "输入的IP地址格式不正确"
}