API alamat IP dan endpoint command line
Dapatkan alamat IP publik Anda dari skrip, shell, atau cron job: teks polos untuk curl, JSON dengan detailnya, serta host khusus IPv4 dan khusus IPv6 saat Anda butuh jenis alamat tertentu. Tanpa key, tanpa akun, 600 permintaan per menit per alamat.
Mulai cepat: dapatkan IP Anda dengan curl
curl checkmyip.com/raw
203.0.113.42Itulah seluruh API untuk kebanyakan kebutuhan: satu permintaan, alamatnya, satu baris baru. curl -4 dan curl -6 memaksa jenis alamat tertentu; curl checkmyip.com/json mengembalikan detail di bawah. Klien apa pun yang mengirim Accept: text/plain atau User-Agent command line mendapat alamat polos dari /raw; browser mendapat halaman untuk manusia.
$ curl checkmyip.com
216.73.216.52
$ curl -H "Accept: text/plain" https://checkmyip.com/
216.73.216.52 Endpoint
| Endpoint | Mengembalikan | Catatan |
|---|---|---|
GET https://checkmyip.com/raw | IP Anda sebagai teks polos dengan baris baru di akhir | juga GET / dengan User-Agent curl/wget/PowerShell |
GET https://checkmyip.com/ip · /ip.txt | alamat teks polos yang sama (alias untuk skrip yang mengharapkan path tersebut) | Cache-Control: no-store |
GET https://checkmyip.com/json | JSON: ringkasan ip, version, geo, network, type, risk (field di bawah) | Cache-Control: private, no-store |
GET https://checkmyip.com/json?ip=203.0.113.42 | JSON yang sama untuk alamat publik apa pun | batas 600/menit yang sama |
GET https://ipv4.checkmyip.com/ip | {ip, family: 4, …} hanya lewat IPv4 | gagal jika Anda tidak punya jalur IPv4 |
GET https://ipv6.checkmyip.com/ip | {ip, family: 6, …} hanya lewat IPv6 | gagal jika Anda tidak punya jalur IPv6 |
GET https://ds.checkmyip.com/ip | jenis alamat yang dipilih klien Anda saat keduanya berfungsi | ?format=text untuk keluaran polos |
Semua endpoint menjawab lewat HTTPS dengan CORS aktif untuk pemakaian baca-saja, mengirim Cache-Control: no-store, dan ditandai noindex untuk mesin pencari. Hasil untuk alamat lain di-cache selama sepuluh menit.
https://checkmyip.com/rawhttps://checkmyip.com/iphttps://checkmyip.com/ip.txthttps://checkmyip.com/https://checkmyip.com/jsonhttps://checkmyip.com/json?ip=203.0.113.9All of them send Cache-Control: private, no-store, Access-Control-Allow-Origin: * and X-Robots-Tag: noindex; tidak perlu api key.
Field respons JSON
ip — alamat sebagai string. version — 4 atau 6. geo.consensus — country (ISO 3166-1 alpha-2), region, city, lat, lon, timezone, confidence (0–1), disagreement (boolean), anycast (boolean); geo.sources[] — jawaban setiap database beserta updated, licence, dan attribution. network — asn, as_name, as_org, prefix, rir, allocation_date, registry_country, abuse_contacts[]. hostname — nama PTR atau null. type.type — residential, mobile, business, datacenter, atau unknown, dengan confidence dan reasons[]. risk — is_proxy, is_vpn, is_tor, is_datacenter, is_relay, score (0–100), level, reasons[], blacklists[], dan score_version. Nilai yang tidak ada bernilai null dengan alasannya di status atau note; vonis heuristik dinyatakan sebagai heuristik. String atribusi wajib ditampilkan jika Anda menampilkan data geolokasi kepada pengguna (ketentuan CC BY 4.0 / CC BY-SA 4.0).
Two fields are additive on top of the list above: schema_version (the lookup service's response schema, 1.1 today; fields are only ever added) and geo.agreement — the per-field tally behind the consensus (country_sources, country_source_ids, city_sources, city_source_ids, the disagreeing ids and a one-line summary such as “country confirmed by 3 sources, city from 2”). network.origins[] lists every ASN that originates the address (asn, as_name, as_org, named_by[], primary; network.multi_origin is true when there is more than one and network.note says which was chosen as primary). risk.factors[] carries the score arithmetic (id, label, points, source; sum = score before the cap at 100) and risk.reasons[] the same signals as full sentences. A tied city vote sets geo.consensus.city to null and lists the options in geo.consensus.city_candidates[]; geo.consensus.tie_break says what rule applied. hosted_domains (full lookups only) is the IP2WHOIS hosted-domain block: status (ok, cached, budget_exhausted with retry_after, no-data, skipped on fast answers), total_domains, domains[] (a sample — the free plan returns one name per page), page/total_pages and the attribution string, which must be shown with the names. Own-address answers also carry colo (the Cloudflare data centre that served you) and cache (live or edge ≤10 min).
Contoh kode
Setiap contoh mencetak alamat publik mesin tempat kode itu dijalankan.
curl
curl -s https://checkmyip.com/raw
curl -s -4 https://checkmyip.com/raw # hanya IPv4
curl -s -6 https://checkmyip.com/raw # hanya IPv6
curl -s https://checkmyip.com/json | jq .geo.consensus.countrywget
wget -qO- https://checkmyip.com/rawPowerShell
(Invoke-WebRequest -Uri https://checkmyip.com/raw -UseBasicParsing).Content.Trim()
(Invoke-RestMethod -Uri https://checkmyip.com/json).network.asnPython
import urllib.request
ip = urllib.request.urlopen("https://checkmyip.com/raw", timeout=5).read().decode().strip()
print(ip)JavaScript (fetch)
const r = await fetch("https://checkmyip.com/json", { cache: "no-store" });
const { ip, geo } = await r.json();
console.log(ip, geo.consensus.country);Go
resp, err := http.Get("https://checkmyip.com/raw")
if err != nil { log.Fatal(err) }
defer resp.Body.Close()
b, _ := io.ReadAll(resp.Body)
fmt.Println(strings.TrimSpace(string(b)))Skrip Bash dan cron
#!/bin/sh
# beri tahu saat IP publik berubah (jalankan dari cron setiap 5 menit)
new=$(curl -fsS --max-time 5 https://checkmyip.com/raw) || exit 0
old=$(cat /var/tmp/public-ip 2>/dev/null)
[ "$new" != "$old" ] && { echo "$new" > /var/tmp/public-ip; logger "public IP changed: $old -> $new"; }Gunakan --max-time, perlakukan kegagalan sebagai tidak diketahui dan bukan berubah, dan jangan melakukan polling lebih sering dari sekali per menit.
Batas permintaan dan pemakaian wajar
/raw, /ip, /ip.txt, /json, /json?ip=, dan host /ip khusus per jenis alamat mengizinkan 600 permintaan per menit per alamat; pemeriksa port mengizinkan 20 per menit dan hanya pernah menguji alamat pemanggilnya sendiri. Melebihi batas mengembalikan HTTP 429 dengan body error JSON. Endpoint ini gratis untuk pemakaian pribadi, internal, dan komersial dalam batas tersebut; jika Anda memperkirakan volume berkelanjutan di atas batas, atau ingin menyematkan data kami dalam sebuah produk, beri tahu kami lebih dulu lewat halaman kontak. Mohon jangan memakai halaman untuk manusia dari skrip — halaman itu lebih berat dan lebih lambat daripada endpoint di atas.
Uptime dan status
Endpoint berjalan di jaringan edge yang sama dengan situs dan dipantau terus-menerus; endpoint /healthz di server uji kami melaporkan versi dan uptime-nya. Halaman status publik sedang direncanakan. Perubahan format respons diumumkan di halaman ini sebelumnya; field yang sudah ada tidak pernah diganti namanya, hanya ditambah.
Pertanyaan yang sering diajukan
Apakah ada API IP gratis?
Ada. Endpoint di halaman ini mengembalikan alamat publik Anda sebagai teks polos atau JSON tanpa key atau akun, dalam batas permintaan di atas, dan /json?ip= mengembalikan JSON yang sama untuk alamat publik apa pun. Halaman cek alamat IP menampilkan data yang sama untuk manusia.
Apakah IP grabber ilegal?
“IP grabber” adalah tautan atau gambar yang mencatat alamat siapa pun yang membukanya. Mencatat alamat pengunjung situs Anda sendiri itu legal dan lazim; menipu seseorang agar mengungkapkannya untuk melecehkan, melacak, atau menyerang mereka adalah titik di mana hukum ikut campur. Endpoint kami hanya mengembalikan alamat klien yang memanggilnya.
Apakah API punya alamat IP?
Setiap server yang menjawab sebuah API punya alamat IP, termasuk milik kami. Pertanyaan yang biasanya ada di balik pertanyaan ini — “bisakah sebuah program mengetahui alamat publiknya sendiri?” — adalah gunanya endpoint ini: program bertanya kepada kami, dan kami menjawab dengan alamat asal permintaan yang kami lihat.
Apa itu API alamat IP saya?
Endpoint web yang menjawab dengan alamat siapa pun yang memanggilnya. https://checkmyip.com/raw mengembalikannya sebagai teks dan https://checkmyip.com/json beserta detail lokasi, jaringan, dan risiko, seperti didokumentasikan di atas.
Apa yang dilakukan curl ifconfig.me?
ifconfig.me adalah situs lain yang mengembalikan alamat pemanggil saat diambil dengan curl. curl checkmyip.com/raw melakukan hal yang sama di sini; endpoint JSON kami juga memberi Anda field jaringan dan lokasi.
Bagaimana cara mengetahui alamat IP saya dengan curl?
Jalankan curl -s https://checkmyip.com/raw di terminal mana pun yang terhubung internet. Tambahkan -4 atau -6 untuk memaksa IPv4 atau IPv6. Keluarannya adalah alamat diikuti baris baru, sehingga aman dipakai dalam skrip.
Apakah ifconfig.me aman?
Kami tidak bisa menjamin layanan lain. Untuk layanan kami: permintaan dijawab tanpa menyimpan alamat Anda, respons dilayani lewat HTTPS, dan kebijakan privasi berlaku untuk endpoint persis seperti untuk halaman.