무료 인증 없는 공개 IP API. IPv4, IPv6, ISP, ASN, 지리정보, 시간대를 반환하는 4개의 엔드포인트 — JSON 또는 텍스트.
# 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/
호출자 IP 주소에 대한 모든 가용 데이터를 담은 완전한 JSON 객체를 반환합니다.
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"
}
| 필드 | 유형 | 설명 |
|---|---|---|
| status | string | "ok" 또는 지리정보 실패 시 "partial" |
| ip | string | 감지된 IP (IPv4 또는 IPv6) |
| ipv4 | string | null | 사용 가능한 경우 IPv4 주소 |
| ipv6 | string | null | 사용 가능한 경우 IPv6 주소 |
| isp | string | null | 인터넷 서비스 제공업체 이름 |
| asn | string | null | 자율 시스템 번호 (예: "AS3269") |
| timezone | string | null | IANA 시간대 (예: "Europe/Rome") |
| datetime | string | 호출자 시간대의 ISO 8601 날짜/시간 |
| geo.city | string | null | 대략적인 도시 이름 |
| geo.region | string | null | 지역 / 주 |
| geo.country | string | null | 국가 이름 |
| geo.lat / geo.lon | float | null | 대략적인 좌표 |
| cached | boolean | 1시간 캐시에서 제공된 경우 true |
두 줄에 IPv4와 IPv6를 반환합니다. 프로토콜을 사용할 수 없으면 NONE을 반환합니다.
curl https://ippubblico.org/?text=1
IPv4: 93.45.12.88 IPv6: NONE
IPv4 주소만 일반 텍스트로 반환하거나, 사용 불가능한 경우 NONE.
curl https://ipv4.ippubblico.org/
93.45.12.88
IPv6 주소만 일반 텍스트로 반환하거나, 사용 불가능한 경우 NONE.
curl https://ipv6.ippubblico.org/
2001:db8::1
# 전체 JSON 가져오기 curl https://ippubblico.org/?api=1 # IPv4만 가져오기 MY_IP=$(curl -s https://ipv4.ippubblico.org/) echo "My IPv4: $MY_IP" # 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은 DNS A 레코드로 IPv4 연결 강제ipv6.ippubblico.org은 DNS AAAA 레코드로 IPv6 연결 강제전체 웹사이트는 43개 언어로 제공됩니다. API 자체는 언어에 독립적입니다.