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请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| ip | string | 否 | 输入需要查询的 IP,不填默认获取当前 IP |
| format | string | 否 | 输出格式,可选值js,json,jsonp,text,xml,不填默认json |
返回响应
| 字段名 | 类型 | 说明 |
|---|---|---|
| code | integer | 状态码 |
| data | string | ip 数据 |
| data > ip | string | ip 地址 |
| data > ipVersion | string | ip 协议版本 |
| data > countryName | string | 国家 |
| data > regionName | string | 省份 |
| data > cityName | string | 城市 |
| data > districtName | string | 地区 |
| data > internetServiceProvider | string | 运营商 |
返回示例
json
{
"code": 200,
"data": {
"ip": "114.114.114.114",
"ipVersion": "ipv4",
"countryName": "中国",
"regionName": "江苏",
"cityName": "南京",
"districtName": null,
"internetServiceProvider": "南京信风网络科技有限公司GreatbitDNS服务器"
}
}json
{
"code": 201,
"msg": "输入的IP地址格式不正确"
}