API عمومی IPPubblico

API عمومی IP رایگان بدون احراز هویت. چهار endpoint که IPv4، IPv6، ISP، ASN، موقعیت و منطقه زمانی را برمی‌گردانند — در JSON یا متن.

✓ رایگان برای همیشه ✓ بدون کلید API ✓ بدون محدودیت نرخ JSON & Plain text CORS enabled

URLهای پایه endpoints

endpoints
# 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/

Endpoint‌ها reference

GET https://ippubblico.org/?api=1 پاسخ کامل JSON

یک شیء JSON کامل با تمام داده‌های موجود درباره آدرس IP تماس‌گیرنده برمی‌گرداند.

curl
curl https://ippubblico.org/?api=1
Response — application/json
{
  "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"
}
فیلدنوعتوضیحات
statusstring"ok" یا "partial" اگر موقعیت‌یابی ناموفق بود
ipstringIP شناسایی‌شده (ممکن است IPv4 یا IPv6 باشد)
ipv4string | nullآدرس IPv4 در صورت موجود بودن
ipv6string | nullآدرس IPv6 در صورت موجود بودن
ispstring | nullنام ارائه‌دهنده خدمات اینترنت
asnstring | nullشماره سیستم مستقل (مثل "AS3269")
timezonestring | nullمنطقه زمانی IANA (مثل "Europe/Rome")
datetimestringتاریخ/زمان ISO 8601 در منطقه زمانی تماس‌گیرنده
geo.citystring | nullنام تقریبی شهر
geo.regionstring | nullاستان / منطقه
geo.countrystring | nullنام کشور
geo.lat / geo.lonfloat | nullمختصات تقریبی
cachedbooleanدر صورتی که نتیجه از حافظه کش 1 ساعته باشد true است
Localization parameter Add ?lang=xx to receive city, country and region in the requested language. Supported: de es fr ja pt ru zh.
curl — lang=ja
curl "https://ippubblico.org/?api=1&lang=ja"
// "city": "ナポリ", "country": "イタリア共和国"
GET https://ippubblico.org/?text=1 متن ساده — IPv4 + IPv6

IPv4 و IPv6 را در دو خط جداگانه برمی‌گرداند. اگر پروتکل در دسترس نباشد NONE برمی‌گرداند.

curl
curl https://ippubblico.org/?text=1
Response — text/plain
IPv4: 93.45.12.88
IPv6: NONE
GET https://ipv4.ippubblico.org/ فقط IPv4

فقط آدرس IPv4 را به صورت متن ساده برمی‌گرداند، یا NONE اگر در دسترس نباشد.

curl
curl https://ipv4.ippubblico.org/
Response — text/plain
93.45.12.88
GET https://ipv6.ippubblico.org/ فقط IPv6

فقط آدرس IPv6 را به صورت متن ساده برمی‌گرداند، یا NONE اگر در دسترس نباشد.

curl
curl https://ipv6.ippubblico.org/
Response — text/plain
2001:db8::1

مثال‌های کد samples

bash / curl
# دریافت 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"
JavaScript (fetch)
// 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);
Python
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}')
PHP
// 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/'));
Go
resp, _ := http.Get("https://ipv4.ippubblico.org/")
body, _ := io.ReadAll(resp.Body)
fmt.Println("IPv4:", strings.TrimSpace(string(body)))
PowerShell
$ip = (Invoke-WebRequest 'https://ipv4.ippubblico.org/').Content.Trim()
Write-Host "IPv4: $ip"
Ruby
require 'open-uri'
ipv4 = URI.open('https://ipv4.ippubblico.org/').read.strip
puts "IPv4: #{ipv4}"
C# / .NET
var client = new HttpClient();
var ipv4 = (await client.GetStringAsync("https://ipv4.ippubblico.org/")).Trim();
Console.WriteLine($"IPv4: {ipv4}");

یادداشت‌ها info

  • ✓ بدون احراز هویت — نیازی به کلید API یا توکن نیست
  • ✓ CORS فعال — قابل استفاده از JavaScript مرورگر در هر دامنه‌ای
  • ✓ حافظه کش 1 ساعته — داده‌های موقعیت‌یابی به ازای هر IP به مدت 1 ساعت کش می‌شوند
  • ✓ زیر دامنه IPv4 — ipv4.ippubblico.org اتصال IPv4 را از طریق رکورد DNS A اجباری می‌کند
  • ✓ زیر دامنه IPv6 — ipv6.ippubblico.org اتصال IPv6 را از طریق رکورد DNS AAAA اجباری می‌کند
  • ⚠ دقت موقعیت‌یابی — سطح تقریبی شهر/منطقه (~50 کیلومتر). برای اهداف قانونی یا نظارتی مناسب نیست.
  • ⚠ نگهداری داده — IP و فراداده حداکثر 90 روز ذخیره می‌شوند. بدون اشتراک‌گذاری با اشخاص ثالث.

زبان‌های موجود 43

وب‌سایت کامل به 43 زبان در دسترس است. خود API مستقل از زبان است.

🇮🇹 IT Italiano ↗
🇬🇧 EN English ↗
🇩🇪 DE Deutsch ↗
🇫🇷 FR Français ↗
🇪🇸 ES Español ↗
🇧🇷 PT Português ↗
🇳🇱 NL Nederlands ↗
🇵🇱 PL Polski ↗
🇷🇴 RO Română ↗
🇨🇿 CS Čeština ↗
🇸🇪 SV Svenska ↗
🇩🇰 DA Dansk ↗
🇫🇮 FI Suomi ↗
🇭🇺 HU Magyar ↗
🇸🇰 SK Slovenčina ↗
🇧🇬 BG Български ↗
🇭🇷 HR Hrvatski ↗
🇸🇮 SL Slovenščina ↗
🇪🇪 ET Eesti ↗
🇱🇻 LV Latviešu ↗
🇱🇹 LT Lietuvių ↗
🇬🇷 EL Ελληνικά ↗
🇲🇹 MT Malti ↗
🇮🇪 GA Gaeilge ↗
🇷🇺 RU Русский ↗
🇺🇦 UK Українська ↗
🇯🇵 JA 日本語 ↗
🇨🇳 ZH 中文 ↗
🇮🇳 HI हिन्दी ↗
🇸🇦 AR العربية ↗
🇰🇷 KO 한국어 ↗
🇹🇷 TR Türkçe ↗
🇮🇩 ID Bahasa Indonesia ↗
🇻🇳 VI Tiếng Việt ↗
🇹🇭 TH ภาษาไทย ↗
🇲🇾 MS Bahasa Melayu ↗
🇳🇴 NB Norsk Bokmål ↗
🇵🇰 UR اردو ↗
🇹🇿 SW Kiswahili ↗
🇮🇷 FA فارسی ↗
🇧🇩 BN বাংলা ↗
🇵🇭 TL Filipino ↗
🇮🇱 HE עברית ↗