API IP công khai miễn phí, không cần xác thực. Bốn endpoint trả về IPv4, IPv6, ISP, ASN, vị trí địa lý và múi giờ — JSON hoặc văn bản.
# Full data (JSON) https://ippubblico.org/?api=1 # IPv4 + IPv6 (plain text, 2 lines) https://ippubblico.org/?text=1 # IPv4 only https://ipv4.ippubblico.org/ # IPv6 only https://ipv6.ippubblico.org/
Trả về đối tượng JSON đầy đủ với tất cả dữ liệu có sẵn về địa chỉ IP của người gọi.
curl https://ippubblico.org/?api=1
{
"status": "ok",
"ip": "93.45.12.88",
"ipv4": "93.45.12.88",
"ipv6": null,
"isp": "Telecom Italia S.p.A.",
"asn": "AS3269",
"timezone": "Europe/Rome",
"datetime": "2026-05-05T12:00:00+02:00",
"geo": {
"city": "Rome",
"region": "Lazio",
"country": "Italy",
"lat": 41.9028,
"lon": 12.4964
},
"headers": { /* HTTP request headers */ },
"cached": false,
"lang": "en"
}
| Trường | Kiểu | Mô tả |
|---|---|---|
| status | string | "ok" hoặc "partial" nếu định vị địa lý thất bại |
| ip | string | IP được phát hiện (có thể là IPv4 hoặc IPv6) |
| ipv4 | string | null | Địa chỉ IPv4 nếu có |
| ipv6 | string | null | Địa chỉ IPv6 nếu có |
| isp | string | null | Tên nhà cung cấp dịch vụ Internet |
| asn | string | null | Số hệ thống tự trị (ví dụ "AS3269") |
| timezone | string | null | Múi giờ IANA (ví dụ "Europe/Rome") |
| datetime | string | Ngày/giờ ISO 8601 theo múi giờ của người gọi |
| geo.city | string | null | Tên thành phố gần đúng |
| geo.region | string | null | Vùng / tỉnh |
| geo.country | string | null | Tên quốc gia |
| geo.lat / geo.lon | float | null | Tọa độ gần đúng |
| cached | boolean | true nếu kết quả từ bộ nhớ cache 1h |
Trả về IPv4 và IPv6 trên hai dòng riêng biệt. Trả về NONE nếu giao thức không khả dụng.
curl https://ippubblico.org/?text=1
IPv4: 93.45.12.88 IPv6: NONE
Trả về chỉ địa chỉ IPv4 dạng văn bản thuần, hoặc NONE nếu không khả dụng.
curl https://ipv4.ippubblico.org/
93.45.12.88
Trả về chỉ địa chỉ IPv6 dạng văn bản thuần, hoặc NONE nếu không khả dụng.
curl https://ipv6.ippubblico.org/
2001:db8::1
# Lấy JSON đầy đủ curl https://ippubblico.org/?api=1 # Chỉ IPv4 MY_IP=$(curl -s https://ipv4.ippubblico.org/) echo "My IPv4: $MY_IP" # Chỉ IPv6 MY_IPV6=$(curl -s https://ipv6.ippubblico.org/) echo "My IPv6: $MY_IPV6"
// Full JSON const res = await fetch('https://ippubblico.org/?api=1'); const data = await res.json(); console.log(data.ipv4, data.ipv6, data.geo.country); // IPv4 only const ipv4 = await fetch('https://ipv4.ippubblico.org/').then(r => r.text()); console.log('IPv4:', ipv4);
import requests # Full JSON data = requests.get('https://ippubblico.org/?api=1').json() print(data['ipv4'], data['geo']['country']) # IPv4 only ipv4 = requests.get('https://ipv4.ippubblico.org/').text.strip() print(f'IPv4: {ipv4}')
// Full JSON $data = json_decode(file_get_contents('https://ippubblico.org/?api=1'), true); echo $data['ipv4']; // IPv4 only $ipv4 = trim(file_get_contents('https://ipv4.ippubblico.org/'));
resp, _ := http.Get("https://ipv4.ippubblico.org/") body, _ := io.ReadAll(resp.Body) fmt.Println("IPv4:", strings.TrimSpace(string(body)))
$ip = (Invoke-WebRequest 'https://ipv4.ippubblico.org/').Content.Trim() Write-Host "IPv4: $ip"
require 'open-uri' ipv4 = URI.open('https://ipv4.ippubblico.org/').read.strip puts "IPv4: #{ipv4}"
var client = new HttpClient(); var ipv4 = (await client.GetStringAsync("https://ipv4.ippubblico.org/")).Trim(); Console.WriteLine($"IPv4: {ipv4}");
ipv4.ippubblico.org buộc kết nối IPv4 qua bản ghi DNS Aipv6.ippubblico.org buộc kết nối IPv6 qua bản ghi DNS AAAAToàn bộ trang web có sẵn bằng 43 ngôn ngữ. Bản thân API độc lập với ngôn ngữ.