GeoIP
MaxMind GeoLite2 (City, Country, ASN) veritabanlarıyla yerel olarak çalışır; dış servise istek atmaz. Cloudflare ve güvenilir proxy zincirinden gerçek istemci IP'sini çözer. Yanıt ip-api.com biçimiyle uyumludur.
Hızlı başvuru
| Örnek istek | Yol (API klasörüne göre) |
|---|---|
| İsteği yapanın konumu | |
| Belirli bir IP (İngilizce adlar) | ?ip=8.8.8.8&lang=en |
| Ayrıntılı (proxy zinciri, ağ) | ?ip=1.1.1.1&debug=1&pretty=1 |
- Kullananlar
- Launcher, Falcon
- Etiketler
- geoip, ip, country, timezone, currency, maxmind
- Doküman (ham)
- api.streamember.com/geoip/API.md
Genel bakış
Parametresiz istek, isteği yapanın IP'sini çözer. Cloudflare IP blokları ve TRUSTED_PROXIES ortam değişkenindeki CIDR'lar güvenilir kabul edilir; diğer X-Forwarded-For başlıkları yok sayılır.
Bu API ip-api.com istemcileriyle uyumlu kalmak için alan adlarında camelCase ve hatalarda {"status": "fail", "message": …} biçimini kullanır. Havuz standardındaki {"error": …} biçiminin bilinçli istisnasıdır.
Hızlı başlangıç
GET https://api.streamember.com/geoip/?lang=tr{
"query": "88.230.10.10", "status": "success",
"continent": "Europe", "continentCode": "EU",
"country": "Turkey", "countryCode": "TR",
"region": "34", "regionName": "Istanbul", "city": "Istanbul", "district": "", "zip": "34000",
"lat": 41.01, "lng": 28.95, "timezone": "Europe/Istanbul", "offset": 10800, "currency": "TRY",
"isp": "Turk Telekom", "org": "Turk Telekom", "as": "AS9121 Turk Telekom", "asname": "",
"mobile": null, "proxy": null, "hosting": null
}Parametreler
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
ip | metin | istemci IP'si | IPv4 ya da IPv6 |
lang | metin | tr | Yer adlarının dili. GeoLite2'de yalnızca en, de, es, fr, ja, pt, ru, zh adları var; Türkçe dahil diğerleri İngilizce döner. |
debug | 1 | — | debug nesnesi: ağ, proxy zinciri, Cloudflare bilgileri |
dns | 1 | — | reverse alanı (ters DNS) |
pretty | 1 | — | Girintili JSON |
Yanıt biçimi
ip-api alanları: query, status, continent, continentCode, country, countryCode, region, regionName, city, district, zip, lat, lng, timezone, offset (saniye), currency, isp, org, as, asname, mobile, proxy, hosting. GeoLite2 mobil/proxy/hosting sınıflandırması vermediği için son üçü null'dur.
Hatalar
| HTTP | Gövde | Ne zaman |
|---|---|---|
| 400 | {"status":"fail","message":"Invalid IP address."} | Geçersiz ip |
| 405 | {"status":"fail","message":"Only GET requests are supported."} | GET dışı istek |
| 500 | {"status":"fail","message":…} | Veritabanı ya da vendor/ eksik |
Önbellek ve sınırlar
Yanıtlar istemciye özel olduğu için Cache-Control: no-store döner. Veritabanları (GeoLite2-*.mmdb) MaxMind'dan düzenli güncellenmelidir; composer install ile maxmind-db/reader kurulur.
Değişiklik geçmişi
- 2.0.0 —
langparametresi (14 dil kodu), API.md.