Contoh permintaan IP sendiri
Setiap contoh memanggil endpoint yang sama. Proses yang terhubung menentukan alamat IP siapa yang dikembalikan.
Gunakan modul JavaScript atau konsol peramban dengan fetch dan AbortSignal.timeout bawaan.
const response = await fetch(
"https://api.ipquery.io/?format=json",
{ signal: AbortSignal.timeout(5000) }
);
if (!response.ok) {
const message = await response.text();
throw new Error("IPQuery " + response.status + ": " + message);
}
const data = await response.json();
console.log(JSON.stringify(data, null, 2));
Jalankan dalam shell dengan cURL. Kesalahan HTTP menghasilkan kode keluar bukan nol; diagnostik dikirim ke stderr.
curl --fail --silent --show-error --max-time 5 \
"https://api.ipquery.io/?format=json"
Python 3, hanya pustaka standar. Batas waktu berlaku untuk operasi soket.
import json
from urllib.request import urlopen
with urlopen("https://api.ipquery.io/?format=json", timeout=5) as response:
data = json.load(response)
print(json.dumps(data, indent=2))
Go, hanya pustaka standar. Simpan sebagai main.go dan jalankan go run main.go.
package main
import (
"io"
"log"
"net/http"
"os"
"time"
)
func main() {
client := &http.Client{Timeout: 5 * time.Second}
response, err := client.Get("https://api.ipquery.io/?format=json")
if err != nil { log.Fatal(err) }
defer response.Body.Close()
if response.StatusCode != http.StatusOK {
log.Fatalf("IPQuery %s", response.Status)
}
if _, err := io.Copy(os.Stdout, response.Body); err != nil {
log.Fatal(err)
}
}
Contoh menggunakan batas waktu lima detik dan alat HTTP standar bahasa tersebut. Tangani kegagalan dalam aplikasi Anda; jangan menggantinya dengan rekaman IP kosong.