Developer API
IPGu.net มี API ฟรีสำหรับนักพัฒนา ไม่ต้องลงทะเบียนและไม่ต้อง API key รองรับสองรูปแบบ — plain text สำหรับ script อย่างง่าย และ JSON สำหรับแอปพลิเคชันที่ต้องการข้อมูลเพิ่มเติม
ข้อมูล geolocation ใช้ฐานข้อมูล MaxMind GeoLite2 ซึ่งประมวลผลในเซิร์ฟเวอร์ IPGu.net โดยตรง IP ของคุณไม่ถูกส่งไปยังบุคคลที่สาม
Endpoints ที่มีให้
GET /ip — Plain Text
ส่งคืน IP address สาธารณะของคุณเพียงบรรทัดเดียว ใช้งานง่ายที่สุด เหมาะสำหรับ shell script และ automation
curl https://ipgu.net/ip
ตัวอย่างผลลัพธ์:
203.150.12.45
GET /json — JSON
ส่งคืน IP พร้อมข้อมูล geolocation ในรูปแบบ JSON ประกอบด้วย ประเทศ เมือง ภูมิภาค timezone ISP และหมายเลข ASN
curl https://ipgu.net/json
ตัวอย่างผลลัพธ์:
{
"ip": "203.150.12.45",
"country_code": "TH",
"country": "Thailand",
"region": "Bangkok",
"city": "Bangkok",
"timezone": "Asia/Bangkok",
"asn": "AS7470",
"isp": "True Internet Co., Ltd."
}
ฟิลด์ที่ไม่มีข้อมูลจะไม่แสดงในผลลัพธ์ ค่า asn อยู่ในรูปแบบ AS + หมายเลข เช่น AS7470
ตัวอย่างการใช้งาน
Shell / Bash
# เก็บ IP ในตัวแปร
MY_IP=$(curl -s https://ipgu.net/ip)
echo "IP ของคุณ: $MY_IP"
# ดึงข้อมูล JSON แล้วกรองด้วย jq
curl -s https://ipgu.net/json | jq '.country'
JavaScript (Fetch API)
// ดึง IP เป็น plain text
const ip = await fetch('https://ipgu.net/ip').then(r => r.text());
console.log('IP:', ip.trim());
// ดึงข้อมูล JSON
const data = await fetch('https://ipgu.net/json').then(r => r.json());
console.log(data.country, data.city);
Python
import requests
# Plain text
ip = requests.get('https://ipgu.net/ip').text.strip()
print('IP:', ip)
# JSON
data = requests.get('https://ipgu.net/json').json()
print(data['country'], data.get('city', ''))
ฟิลด์ใน JSON Response
ฟิลด์ที่ /json ส่งคืน (ฟิลด์ที่ไม่มีข้อมูลจะถูกตัดออก ไม่ส่งเป็น null):
ip— IP address ของผู้เรียก รองรับทั้ง IPv4 และ IPv6country_code— รหัสประเทศสองตัวอักษร (ISO 3166-1) เช่นTHcountry— ชื่อประเทศเป็นภาษาอังกฤษ เช่นThailandregion— จังหวัดหรือรัฐ เช่นBangkokcity— เมือง (ค่าโดยประมาณ)postal— รหัสไปรษณีย์ (มีหรือไม่ขึ้นอยู่กับ ISP และภูมิภาค)latitude,longitude— พิกัดโดยประมาณ ไม่ใช่ตำแหน่งแน่นอนtimezone— timezone ของ IP block เช่นAsia/Bangkokasn— หมายเลข Autonomous System ในรูปแบบAS + ตัวเลขเช่นAS7470isp— ชื่อผู้ให้บริการอินเทอร์เน็ต
กรณีการใช้งานที่พบบ่อย
- ตรวจสอบ VPN — เรียก
/jsonก่อนและหลังเปิด VPN เปรียบเทียบipและcountry_codeเพื่อยืนยันว่า VPN ทำงาน - CI/CD Pipeline — ใช้
/ipใน script เพื่อบันทึก IP ของ build server หรือตรวจสอบว่า runner อยู่ในเครือข่ายที่ถูกต้อง - Debug Proxy/CDN — เรียกจาก server ที่อยู่หลัง proxy เพื่อตรวจสอบว่า IP ที่ออกไปสู่อินเทอร์เน็ตถูกต้อง
- Web App — ใช้ Fetch API ดึง IP ฝั่ง client เพื่อแสดงในหน้าเว็บโดยไม่ต้องมี backend เอง
นโยบายการใช้งาน (Fair Use)
API นี้ให้บริการฟรีโดยไม่มีการยืนยันตัวตน เพื่อให้บริการนี้ยังคงใช้งานได้ต่อไปสำหรับทุกคน กรุณาใช้งานอย่างสมเหตุสมผล อย่า scrape หรือ poll ถี่เกินความจำเป็น ไม่เหมาะสำหรับการ bulk lookup IP ของบุคคลอื่น หากต้องการใช้งานในระดับสูงหรือเชิงพาณิชย์ ควรพิจารณา MaxMind GeoIP2 โดยตรง
ทั้งสอง endpoint ส่ง header Access-Control-Allow-Origin: * ทำให้ใช้งานได้จาก JavaScript ในเบราว์เซอร์โดยตรง (CORS-enabled) ไม่มีการ rate-limit แบบ hard ณ ปัจจุบัน แต่ขอให้ใช้อย่างมีน้ำใจต่อผู้ใช้คนอื่น
ข้อมูลเพิ่มเติม
สำหรับข้อมูลว่า geolocation ทำงานอย่างไรและข้อจำกัดที่ควรรู้ ดูได้ที่ IP คืออะไร? สำหรับคำสั่ง curl และ terminal เพิ่มเติม ดูได้ที่ คำสั่ง CLI