5 puan yazan GN⁺ 2023-09-15 | 1 yorum | WhatsApp'ta paylaş
  • IP coğrafi konum veritabanı, IP aralıklarını ülke·şehir·posta kodu·saat dilimi·koordinatlar ile ilişkilendirir; ipapi.is ücretsiz CSV ve ticari CSV/MMDB veritabanları sunar
  • Ücretsiz sürüm tüm IPv4·IPv6 alanını kapsamaz ve doğruluğu daha düşüktür; ticari sürüm ise API’nin location alanında kullanılan tam veritabanıdır ve haftada en az 2 kez güncellenir
  • Kendi veritabanınızı oluşturmak için WHOIS’teki geoloc·geofeed, WHOIS adres ve açıklama alanlarından konum çıkarımı ile RIPE IPmap·geofeed-finder·OpenGeoFeed gibi açık projeler birlikte kullanılmalıdır
  • Ağlar birden fazla bölgeye dağılmışsa veya IP’ler yeniden tahsis edilip kiralanıyorsa doğruluk dalgalanır; RIPE NCC’de Temmuz 2023 itibarıyla geoloc kapsamı %2,3, geofeed URL kapsamı ise %0,17 düzeyindedir
  • Toplanan veriler, şehir·ülke bilgisinden koordinat bulma veya koordinatlardan yakın şehri bulma gibi zenginleştirme ve normalleştirme gerektirir; ipapi.is GeoNames posta kodu·şehir·ülke bilgi dosyalarını kullanır

IP coğrafi konum veritabanının yapısı

  • IP to Geolocation Database, IP aralıklarına göre coğrafi konum bilgisini saklayan bir veritabanıdır
  • IP adresleri şu bilgilerle coğrafi konumlandırılabilir
    • Ülke, şehir, eyalet/bölge, posta kodu
    • Saat dilimi
    • Enlem, boylam
  • ipapi.is veritabanı ücretsiz ve ticari sürüm olarak ayrılır
    • Ücretsiz sürüm CSV formatında indirilebilir
    • Ticari sürüm CSV ve MMDB formatlarında sunulur
    • Ticari sürüm tüm IPv4·IPv6 alanını kapsar
    • Ücretsiz sürüm IPv4·IPv6 alanının yalnızca bir bölümünü içerir
  • Ticari veritabanı haftada en az 2 kez güncellenir

Ücretsiz ve ticari sürüm arasındaki fark

  • Ücretsiz IP coğrafi konum veritabanı, ticari sürüme göre daha az girişe sahiptir ve tüm IPv4·IPv6 adres alanını kapsamaz
  • Ücretsiz sürümün coğrafi konum doğruluğu daha düşüktür
  • Ücretsiz sürümün başlıca kaynakları WHOIS verileri ve RFC 8805 Geofeeds’dir
  • Ticari veritabanı, ipapi.is API’sinin location alanında kullanılan tam veritabanıdır
  • Ticari sürüm, konumu hesaplamak için birden fazla kaynağı birleştirir
    • WHOIS kayıtları
    • ping, traceroute tabanlı aktif gecikme ölçümleri
    • RFC 8805 Geofeeds
    • Ters DNS sorguları

Veritabanı formatları ve doğruluk alanı

  • Veritabanı dosyaları CSV veya MMDB formatındadır
  • Başlıca alanlar IP aralığı, konum, koordinatlar ve doğruluğu birlikte içerir
    • ip_version: IPv4 için 4, IPv6 için 6
    • start_ip, end_ip: ağ aralığının başlangıç ve bitiş IP’leri
    • continent, country_code, country, state, city, zip
    • timezone, latitude, longitude
    • accuracy
  • accuracy, coğrafi konum bilgisinin tahmini doğruluğunu 1~5 arasında gösterir
    • 1: çok yüksek doğruluk, genellikle şehir düzeyinde güvenilir
    • 2: yüksek doğruluk, genel olarak şehir düzeyinde güvenilir
    • 3: orta doğruluk, şehir düzeyinde güvenmek zordur
    • 4: düşük doğruluk, genellikle ülke düzeyinde doğrudur
    • 5: çok düşük doğruluk, ülke düzeyinde doğru olması beklenir

MMDB örneğini kontrol etme yöntemi

IP coğrafi konumunun kullanım alanları ve sınırları

  • IP coğrafi konumu, IP adreslerini enlem·boylam ile tanımlanan coğrafi konumlara eşleme sürecidir
  • Çevrimiçi işletmeler ve hizmet sağlayıcıları coğrafi konum bilgisini çeşitli amaçlarla kullanır
    • Hedefli reklamcılık
    • Dolandırıcılık tespiti ve önleme
    • İçerik yerelleştirme
    • DRM ve mevzuata uyum
    • Ağ güvenliği
    • Analitik ve içgörüler
  • IP coğrafi konumunun her zaman doğru olmamasının yapısal nedenleri vardır
    • Tahsis edilen IPv4·IPv6 ağları coğrafi olarak dağılmış olabilir
    • Mobil ağlar veya uydu ağları gibi birden fazla bölgeye yayılacak şekilde tasarlanmış ağlar vardır
    • Regional Internet Registry veya IP kiralama şirketleri IP ağlarını yeniden tahsis ettiğinde ya da yeniden atadığında konum değişebilir
  • IP adresi coğrafi konumlandırması karmaşıktır, ancak IP adresi API’lerinde göz ardı edilmesi zor bir doğruluk sunabilir

Sıfırdan oluştururken gereken çalışmalar

  • İnternetteki her IP adresi belirli bir kuruluşun sahipliğinde veya yönetimindedir
  • ARIN, APNIC gibi Regional Internet Registry (RIR) kuruluşları sahiplik bilgilerini WHOIS veritabanlarında saklar
  • WHOIS kayıtları tahsis edilen ağın coğrafi konum bilgisini her zaman içermez
  • Ağın sahibi olan kuruluş, IP’leri istediği coğrafi konumda kullanabilir; üçüncü taraflara tahsis edebilir veya IP bloklarını kiralayabilir
  • Coğrafi konum bilgisi toplama genel olarak üç kola ayrılır
    • WHOIS kayıtlarından geoloc, geofeed gibi doğrudan coğrafi konum verilerini çıkarma
    • WHOIS’teki posta adresi, açıklama ve ülke bilgisinden dolaylı konum çıkarımı
    • RIPE IPmap, geofeed-finder, OpenGeoFeed gibi açık projelerden yararlanma

RIR’lara göre doğrudan coğrafi konum verileri

  • RIPE NCC

    • RIPE NCC’nin inetnum, inet6num nesneleri IP ağlarını kuruluşlara tahsis eder
    • Coğrafi konum bilgisi geoloc ve geofeed adlı iki öznitelikle sağlanabilir
    • geoloc, enlem ve boylamı metin olarak içerir
    • Örnek: 47.855374 12.132041
    • Temmuz 2023 itibarıyla RIPE NCC veritabanında 4.190.644 inetnum ve 819.381 inet6num vardı
    • Bunlardan geoloc özniteliğini içeren nesne sayısı 114.389’du ve toplam kapsam %2,3 idi
    • geofeed, RFC 8805 formatındaki CSV dosyasının URL’sini içerir
    • geofeed URL’si özel geofeed özniteliğinde veya remarks özniteliğinde Geofeed {URL} formatıyla kaydedilebilir
    • Temmuz 2023 itibarıyla RIPE NCC’de remarks özniteliğinde 6.643 geofeed URL’si, geofeed özniteliğine sahip 2.035 WHOIS kaydı vardı
    • geofeed URL kapsamı %0,17’dir; ancak tek bir geofeed dosyası birden fazla ağı içerebildiğinden bu sayı yanıltıcı olabilir
  • ARIN

    • ARIN, NetRange nesnesinin Comment özniteliğine geofeed URL’si koyarak coğrafi konum bilgisi sağlar
    • Özel bir geofeed özniteliği ekleme talebi olmuştu, ancak Comment veya Remark özniteliklerinin yeterli olduğu gerekçesiyle reddedildi
    • ARIN veritabanı, RIPE NCC’den farklı olarak geoloc özniteliğini kullanmaz
  • LACNIC

    • LACNIC, coğrafi konum desteği konusunda ARIN’den daha aktiftir
    • LACNIC, üyelerin sahip oldukları IP adreslerinin coğrafi konum bilgisini sağlayabildiği Geofeed Service hizmetini işletir
    • Açık veriler milacnic.lacnic.net/lacnic/geofeeds adresinden sunulur
    • LACNIC WHOIS veritabanı varsayılan olarak şehir düzeyinde coğrafi konum bilgisi sağlar
    • LACNIC veritabanı FTP sunucusu ftp.lacnic.net/lacnic/dbase/ üzerinden indirilebilir
  • AFRINIC ve APNIC

    • AFRINIC, coğrafi konum hizmeti sunmadığını ve coğrafi konum sağlayıcılarıyla resmî ya da operasyonel bir ilişkisi olmadığını belirtir
    • AFRINIC, RIPE NCC’ye benzer şekilde remarks özniteliğinde geofeed URL’si kullanımını destekler
    • APNIC, RIPE NCC ile neredeyse aynı düzeyde coğrafi konum desteği sunar
      • geoloc özniteliği
      • remarks özniteliğinde geofeed URL’si
    • APNIC, coğrafi konum desteğini iyileştirmeye açık görünmektedir

WHOIS’ten konum çıkarımı yöntemi

  • WHOIS’in temel amacı, IP adresi veya AS numarası gibi internet numaralarının sahibi olan kuruluşların kayıt bilgilerini sağlamaktır
  • WHOIS çoğu zaman kuruluşun merkezi veya yönetim konumuna ait posta adresini ve ülkeyi içerir
  • Kuruluşun posta adresinin IP adresinin kullanım konumuyla örtüştüğü durumlar vardır, ancak bu her zaman böyle değildir
  • Büyük kuruluşların yönetim adresi, o kuruluşun tüm IP adreslerinin konumuyla örtüşmeyebilir
  • RIPE NCC’de çıkarım

    • RIPE NCC’nin inetnum, inet6num nesnelerinde kullanılabilecek öznitelikler şunlardır
      • country: yalnızca ülke düzeyinde doğruluk sağlar
      • descr: ağ açıklamasıdır; konum·adres bilgisi içerebilir
      • netname: ayrıştırması zordur ve güvenilirliği düşüktür
      • address: teknik olarak role nesnesinin özniteliğidir ve posta adresini içerir
    • country özniteliği ISO 3166-2 harfli ülke kodunu tanımlar; ancak bu ülkenin genel merkez konumu mu, veri merkezi konumu mu yoksa son kullanıcı konumu mu olduğunu belirtmez
    • descr özniteliği serbest biçimli bir açıklamadır; ancak kuruluşlar ağ konumu ve adres bilgisini buraya koyabildiği için coğrafi konum çıkarımında yararlıdır
    • address yüksek doğruluk sağlayabilir, ancak rol nesnesinin posta adresinin IP adresinin kullanım konumuyla aynı olduğu varsayılırsa hataya yol açabilir
  • ARIN’de çıkarım

    • ARIN’de şu WHOIS öznitelikleri küçük kuruluşlarda veya tek konuma yoğunlaşmış kuruluşlarda görece güvenilir olabilir
      • Address
      • City
      • StateProv
      • PostalCode
      • Country
    • Üniversite, hastane, devlet kurumu gibi kuruluşlar NetRange nesnesindeki IP adreslerini yönetim posta adresiyle aynı konumda kullanabiliyor olabilir
    • Büyük şirketler veya ülke geneline yayılmış kuruluşlar çok sayıda NetRangee sahipse yönetim posta adresi gerçek IP kullanım konumuyla uyuşmayabilir
    • Google Fiber örneğinde WHOIS adresi kullanılırsa konum Mountain View, California olarak görünür; ancak çoğu coğrafi konum sağlayıcısı ilgili IP’yi Texas’taki San Antonio olarak konumlandırır
  • LACNIC, AFRINIC, APNIC

    • LACNIC, WHOIS veritabanında coğrafi konum sağladığı için ayrı bir çıkarıma gerek yoktur
    • AFRINIC, RIPE NCC ile aynı WHOIS veritabanı formatını kullandığından aynı ilkeler uygulanabilir
      • country, descr
      • role nesnesinin address özniteliği
    • APNIC de RIPE NCC ile aynı WHOIS veritabanı formatını kullandığından aynı ilkeler uygulanır

Açık coğrafi konum projeleri

  • RIPE IPmap

    • RIPE IPmap, temel internet altyapısı için coğrafi konum verileri sağlayan bir API idi
    • Artık bakımı yapılmıyor gibi görünür ve 2019’dan sonra yeni katkı olmadığı anlaşılır
    • RIPE IPmap, IP adreslerinin coğrafi konumunu birden fazla motorla çıkarır
    • latency ve single-radius motorları, IP adresinin gecikme yarıçapını sağlamak için RIPE Atlas ölçümlerini kullanır
    • Minimum RTT ölçümleri, fiber optik ortamda ışık hızı nedeniyle mümkün olan azami mesafe için bir üst sınır sağlar
    • reverse-dns motoru, PTR kayıtlarındaki ana makine adlarından şehir düzeyinde coğrafi konum çıkarır
    • RIPE IPmap veritabanı https://ftp.ripe.net/ripe/ipmap/ adresinden indirilebilir
    • Projenin doğruluğu ve kapsamı, eski bakım sorumlusunun web sitesine göre ciddi ölçüde düşmüştür
  • geofeed-finder

    • geofeed-finder, WHOIS verilerinden geofeed dosyalarını keşfedip getiren açık kaynaklı bir araçtır
    • Bu araç prefix sahipliği doğrulaması, önbellek yönetimi ve ISO kod doğrulaması da yapar
    • RFC 9092 uyarınca WHOIS verilerinden geofeed çıkarabilir
    • Tüm ağlarda geofeed bilgisinin kapsamı çok düşük olduğundan pratik kullanılabilirliği sınırlıdır
  • LACNIC Geofeeds Service ve OpenGeoFeed

    • LACNIC Geofeeds Service, LACNIC üyelerinin önemli bir bölümünün coğrafi konum bilgisini sağlar
    • Veriler milacnic.lacnic.net/lacnic/geofeeds adresinden herkese açık şekilde indirilebilir
    • RIR düzeyinde coğrafi konum bilgisi toplanabilmesi açısından önemli bir projedir
    • OpenGeoFeed, RFC 9092 uyarınca kendi açık geofeed’lerini toplayan açık kaynaklı bir projedir
    • OpenGeoFeed, bilinen açık geofeed dosyalarını içeren tek bir dosyayı opengeofeed.org/feed/public.csv adresinde sunar
    • OpenGeoFeed umut vericidir, ancak geofeed kapsamı güncel görünmemektedir ve veri kaynaklarının sık güncellenme olasılığı düşüktür

Veri zenginleştirme ve normalleştirme

  • Birden fazla kaynaktan toplanan ham coğrafi konum verileri eksik veya tutarsız olabilir
  • Ülke·şehir bilgisi olup koordinatı olmayan kayıtlar da, koordinatı olup ülke·şehir bilgisi olmayan kayıtlar da ortaya çıkabilir
  • Ham kayıt yalnızca ülke içeriyorsa doğruluk ülke düzeyini aşmakta zorlanır
  • Toplanan veriler ortak bir formata zenginleştirilmeli ve dönüştürülmelidir
  • Veri zenginleştirme açık kaynaklı coğrafi veritabanları kullanılarak yapılır
  • Zenginleştirme çalışması iki duruma ayrılır
    • Şehir·ülke çiftinden enlem ve boylam bulma
    • Enlem·boylamdan en yakın şehir ve ülkeyi bulma
  • ipapi.is coğrafi konum bilgisini zenginleştirmek için şu veritabanlarını kullanır

1 yorum

 
GN⁺ 2023-09-15
Hacker News yorumları
  • IPinfo’ya katılmadan önce de yazılarını keyifle okuyordum; IPinfo’da IP coğrafi konum veri hizmeti sunuyoruz
    Burada anlatılandan daha genişletilmiş bir metodoloji kullanıyoruz; herkese açık veri kümelerinden de kısmen yararlanıyoruz ama çekirdek konum verileri ping tabanlı ölçümlerden geliyor
    Dünyanın dört bir yanındaki birden fazla sunucudan IP adreslerine ping gönderip, çoklu konumlama (multilateration) ile konumu belirliyoruz. Tek bir sunucudan gelen ping yalnızca belirli bir yarıçap içinde bir yerde olduğuna dair tek boyutlu bilgi verir; ancak bunu birden fazla sunucudan tekrarladığınızda konum giderek hassaslaşır
    Yeterince ölçüm yapıldığında posta kodu düzeyine yakın hassasiyete ulaşılabiliyor; şu anda dünya genelinde 600’den fazla tespit sunucumuz var ve sayıyı artırmaya devam ediyoruz
    Herkese açık veriler eski veya sık güncellenmiyor; genellikle faydalı olacak kadar hassas değil ve çoğu zaman yalnızca büyük IP aralıkları ya da kuruluş düzeyinde konum sağlıyor
    Ayrıca herkese açık veri kümelerinde doğrulama süreci yok. IPv4 ticareti ve VPN hizmetleri arttıkça hatalı bilgilerin enjekte edildiği örnekler de gördük; bu yüzden IP konumu düzeltme bildirimlerini memnuniyetle alıyoruz ama mutlaka doğruluyoruz
    Tespit ağı işletme deneyimime göre, New York’ta sunucu satın almak Orta Afrika’daki herhangi bir ülkede satın almaktan çok daha kolay ve ucuz. Bir IP adresinin konumu, o IP’nin sunabileceği değeri ciddi biçimde etkiliyor
    Projelerde kullanılabilecek ücretsiz bir IP-to-Country ASN veritabanı da sunuyoruz: https://ipinfo.io/developers/ip-to-country-asn-database

    • Hangi yazının hayranı olduğunuzu merak ediyorum. https://incolumitas.com/ yazısı mı, yoksa https://ipapi.is/ yazısı mı?
      Gecikme süresi üçgenleme fikri güzel. VPN ve proxy tespiti gibi çeşitli amaçlarla gecikme süresi bilgisini kullandım, ama bununla bu kadar doğru bir konum elde edilebileceğini düşünmemiştim
      600 sunucuyla gecikme süresi üçgenlemesi yapınca oldukça iyi bir yaklaşık sonuç çıkacak gibi; etkileyici
      Yine de birkaç şeyi merak ediyorum. Bazı ISP’ler ICMP trafiğini düşük öncelikli işler veya performansını düşürür; bununla nasıl başa çıkıyorsunuz? Tüm IPv4’leri coğrafi olarak konumlandırmak için milyarlarca adrese sürekli ping göndermek gerekir; her tahsis edilmiş inetnum/NetRange içinden rastgele tek bir IP’yi mi ölçüyorsunuz? IP adreslerinin çoğu ICMP’ye yanıt vermiyor; hedefin önündeki yönlendiriciyi bulup onun konumunu mu belirliyorsunuz?
    • Anycast adreslerinde ICMP yanıt süresiyle “konum” belirlemek zordur; bazılarının ayrıca bağlı olduğu mantıksal bir konum vardır. Örneği https://blog.cloudflare.com/icloud-private-relay/ adresinde görebilirsiniz
    • IPinfo’nun hem hayranı hem müşterisi olarak, giriş bildirim e-postalarına “Az önce Almanya, Berlin’den giriş yaptınız. Bu siz değilseniz buraya tıklayın” gibi ifadeler koymak için API’yi kullanıyoruz
      Müşteri denetim günlüklerinde ülke verisi sağlamak, spam önleme ve dolandırıcılık tespitinde de kullanıyoruz
    • Veritabanını Parquet biçiminde indirilebilir hale getirmeyi düşündünüz mü?
      Böylece dosyayı S3, Google Cloud vb. yerlere kopyalayıp birçok araçla doğrudan sorgulamak mümkün olur. CSV ile de yapılabilir ama çok pürüzsüz değil
    • Mevcut bilgi kaynakları yokken bir IP adresinin konumunun nasıl öğrenildiğini merak ediyordum; bu açıklama tam da öğrenmek istediğim şeydi, bu yüzden çok ilginç
  • Kendiniz uygulamak istemiyorsanız, basit bir Cloudflare Worker ile bunu Cloudflare’a ücretsiz yaptırabilirsiniz. Tüm Cloudflare istekleri yaklaşık IP konum bilgisi içerir
    Cloudflare Worker üzerinde çalışan şu URL’ye istek gönderebilirsiniz. Dünya genelinde düşük gecikme süresi verecektir: https://www.edenmaps.net/iplocation
    Küçük uygulamalarda kullanmanız sorun değil; yalnızca günde 10 milyon istek göndermeyin yeter

    • Hizmete hangi IP adreslerinin erişmiş olabileceğini üçüncü bir tarafla paylaşmaktansa, IP veritabanını indirip kullanmak daha iyi
    • Somali kıyılarından 100 km açıkta gösteriyor, ama aslında Belçika, Brüksel’deyim. Gizlilik koruması için teşekkürler :D
    • Worker isteklerinde Cloudflare coğrafi konumunun ne kadar doğru olduğunu bilen var mı, merak ediyorum
    • Harika. Mümkünse o kodu açık kaynak olarak yayımlayabilir misiniz, merak ediyorum
    • Münih’teyim ama Cloudflare kuzeyde 730 km uzaktaki rastgele bir ormanı gösteriyor
  • Ana dilimin konuşulmadığı bir ülkede yaşadığım için, IP konumundan dil tahmin edip bunu zorla uygulayan web sitelerinden gerçekten nefret ediyorum
    Tarayıcı dil başlığını son derece açık biçimde gönderdiği halde bunu yok sayıp tembel varsayımlara dayanarak dili belirliyorlar

    • IP coğrafi konum hizmetinde çalışıyorum ama ben de bundan nefret ediyorum
      Sektörde buna “web deneyimi kişiselleştirme” deniyor, ama sinir bozucu bir yöntem. Kimseye bunu yapmasını önermedim
      IP coğrafi konumuyla bir web sitesini kişiselleştirecekseniz en fazla vergiler, kargo ücretleri, ülke seçimi açılır menüsünde kullanıcının ülkesini en üste koymak gibi şeyler için kullanılmalı
      Bunun dışında aklıma pek bir şey gelmiyor. Çeviri genellikle iyi çalışmıyor ve yalnızca engel oluyor. Web sitesi iyi niyetli olsa bile Google Translate ile yerel dil sürümü oluşturmak iyi bir fikir değil
    • ABD’de yaşıyorum ama tüm cihazlarımda IP coğrafi konumu yanlış bölgeleri gösteriyor
      Günlük internet deneyimini bu veritabanları kadar bozan teknoloji azdır
      Keşke tamamen ortadan kalksalar
      Web sitesi her seferinde yanlış tahmin edip düzeltme akışını bir sürü bağlantı ve sayfa yüklemesinin arkasına saklamak yerine ilk yüklemede posta kodunu sorabilir
      Ayrıca veritabanını düzeltip “doğru cevap” veya “daha iyi cevap” üretmenin de bir yolu yok. Çünkü web sitelerinin mevcut konumumu kullanmasını istediğim durum neredeyse hiç yok
      Genellikle ileride gideceğim bir yerdeki mağaza stokunu kontrol ediyorum. Bu alanın tamamı kötü tanımlanmış bir problemi çözmeye çalışıyor
    • Aynı hayal kırıklığını o kadar çok yaşadım ki bununla ilgili bir yazı bile yazdım: https://www.fer.xyz/2021/04/i18n
  • Kullanım amacına ve gereken doğruluk düzeyine bağlı
    Bir coğrafi konum hizmeti oluşturmanın en iyi yolu, kendi konumunu ve IP’sini aynı anda bildiren 1 milyar cihaza sahip olmaktır. Pratikte Apple ve Google bu konumda
    IP ve konumla ilgili sürekli güncellemeler aldıkları için dünyadaki en iyi coğrafi konum veritabanlarına sahipler
    Esas mesele, insanların konumlarını gönüllü olarak verdiği bir uygulama yapmak ve o uygulamayı çok sayıda kişiye kullandırmak. Bu yüzden bugünlerde tüm uygulamalar konum izni istiyor
    Foursquare’in yönü doğruydu ama fazla erkenciydi

    • 10 yıl önce bile Apple’ın şirket içi gizlilik politikaları, Apple’ın hassas enlem/boylam toplamasını engelliyordu
      Belirli bir IP veya subnet için hangi endpoint’in en uygun olduğunu belirlemek üzere HTTP oturumu telemetrisi kullanmak zorundaydık; bunun sonucunda da gerçek koşullara dayalı, GeoIP benzeri kendi veritabanımızı oluşturduk
      Yine de gizlilik nedeniyle bunu mümkün olduğunca geçici tutmak gerekiyordu. Apple Maps’in ters geocoding sonuçları, yakındaki restoranları bulmak gibi gerçek zamanlı kullanıcı isteği bağlamı dışında kullanılamıyor veya kaydedilemiyordu
  • Bir ölçüde ilgili bir konu olarak, Google Maps haritada hangi konumu gezdiğinize göre IP konumunu öğrenebiliyor olabilir
    Belirli bir konuma yeterince çok kez bakarsanız, tüm çerezleri silseniz bile Google Maps’i açtığınızda o konumu varsayılan konum olarak kullanıyor
    Google Maps kullanırken fark ettim; birden fazla kişinin aynı IP adresini paylaşabileceğini düşününce gizlilik açısından biraz endişe verici

    • Tersinin olma olasılığı daha yüksek görünüyor. Google’ın çok iyi bir IP coğrafi konum veritabanı var ve başka bilgi olmadığında gezinti konumu için onu kullanıyor gibi
    • Bu yüzden bazen sık sık kürek çektiğim nehirdeymişim gibi, bazen de yazlığımın olduğu yerdeymişim gibi görünüyorum sanırım
    • Google Workspace ve veri yerelleştirme ile kolluk kuvvetlerinin yetki alanını belirlemede de bunu kullanıyorlar
  • İlginç ama gerçek coğrafi konum belirlemenin böyle yapıldığını sanmıyorum
    ARIN/RIPE verileri ülke düzeyinin ötesinde yeterince doğru olmadığı için kullanışlı değil
    Ticari coğrafi konum, istemci IP’sini bilinen fiziksel konumlarla ilişkilendirir. Örneğin WiFi AP bilgileri veya kullanıcıya gönderilen kargo gibi. En azından onlarca yıldır böyle olduğunu duyuyorum

    • Reklam teknolojisi alanında çalışıyorum; coğrafi konumu bu şekilde ele alıyoruz
      Cihaz coğrafi konumu da var ama kullanıcı GPS verisi paylaşımına onay vermezse hedeflemede yalnızca IP adresini kullanıyoruz. Yaygın sağlayıcılardan biri MaxMind; yerelde barındırılıp sorgulanan bir veritabanı dağıtıyor
  • Yorumlar epey alaycı bir havada ama kişisel olarak gerçekten ilginç buldum
    İlk işimde veritabanına PostGIS ve konum tabanlı arama eklediğim zamanı hatırlattı. O dönemde adres ve posta koduna dayanıyordu

    • MySQL’de de görece basitçe yapılabilir. Bir püf noktası, daire yerine kare kullanmaktır; böylece birçok matematiksel hesaplamadan kaçınabilirsiniz
  • Oldukça uzun zaman önce http://www.hostip.info sitesini yapmıştım. IP adresi konumlarını topluluk yöntemiyle toplayan bir servisti; “Bu tahmin yanlış mı? Düzeltin” gibi bir yaklaşımla çalışıyordu
    En son kontrol ettiğimde muhtemelen 10 yıl kadar önceydi; ülke neredeyse kusursuzdu, bölge eksikti, şehir ise yazı tura atmaktan daha iyi düzeydeydi. Tüm veriler ücretsiz
    Sitede hâlâ var mı bilmiyorum ama bilinen adresleri veya son sorguları göstermek için dönen bir 3D küp de vardı. x, y, z adresin ilk üç oktetiydi; ülke, kıta gibi gruplara göre farklı renkler kullanıyordu
    O kadar eskiydi ki Java applet olarak yazılmıştı. Yeniden yapsaydım muhtemelen WebGL ile yapardım
    Uzun zaman önce sattım ama verilerin her zaman ücretsiz kalması şartını koydum. Başta e-postayla gelen teklif dolandırıcılık gibi göründüğü için inanmamıştım, ama escrow.com üzerinden sorunsuz ilerledi ve iki taraf için de memnuniyet verici şekilde sonuçlandığını düşünüyorum. Artık neredeyse 20 yıl öncesinden bahsediyoruz

  • Daha önce bahsedilen ping tabanlı GeoIP’nin modern bir sürümü gibi görünüyor: https://github.com/Ne00n/yammdb

    • Yalnızca önceden derlenmiş bir mmdb dosyasına bağlandığı için, uygulama açık değilse herhangi bir şeyi “modern” uygulama saydıracak ilgili bir içerik yok
  • Veri merkezi IP’lerini çok kaba da olsa coğrafi konumlandırmanın bir yoluna dair önerileri merak ediyorum
    traceroute verilerini analiz ediyorum; başlangıç ve bitiş konumlarını biliyorum ama asıl ilgilendiğim orta kısımlar
    Örneğin düğüm host adlarında geçen havaalanı kodlarından bazı bilgiler çıkarılabilir
    Belirli bir düğümün durumunun kötü olmadığı varsayımıyla, ortalama RTT süresinden konum çıkarmak da mümkün görünüyor
    Baş ağrıtan örnek IP’ler 193.142.125.129, 129.250.6.113 ve 129.250.3.250. Birleşik Krallık traceroute’larında görünüyorlar ve Londra’da olduklarını düşünüyorum, ama coğrafi konum sonuçları tüm dünyaya dağılmış durumda

    • Bu IP’ler Google ve NTT’ye ait; ikisi de büyük uluslararası ağlar işletiyor, dolayısıyla isterlerse IP’leri dünyanın her yerine yeniden konumlandırabilirler. Bu yüzden sorgu tabanlı coğrafi konumlandırma, gördüğün gibi zaten istikrarsız
      Bu IP’lere giden traceroute, ağın Londra’ya gidiyormuş gibi göründüğünü gösteriyor
      Google IP’si ping’e yanıt vermiyor ama NTT/Verio tarafı yanıt veriyor. Londra merkezli bir hosting’den ping atarsan büyük olasılıkla tek haneli milisaniye yanıt alırsın; bu da Londra’dan uzaklık için bir üst sınır koymanı sağlar
      Birleşik Krallık içindeki başka hosting’lerden ve Manş’ın öte yakasından da ping atarak en düşük ping’in Londra hosting’inden gelip gelmediğini kontrol edebilirsin. Ancak bağlantı yalnızca Londra üzerinden geçiyor olabilir; gerçek konum başka bir yer de olabilir, bu yüzden kesin olarak bilemezsin
      Anycast olup olmadığını görmek için başka gözlem noktalarından da kontrol etmek gerekir. Dünyadaki çoğu ağdan 8.8.8.8’e ping atınca yakındaki bir yer çıkar; ancak bu IP’ler Seattle bölgesinden bile traceroute’ta Londra’ya gittiği için en azından şu an anycast olmama olasılıkları yüksek
      Dünyanın farklı yerlerinde hosting’in yoksa, bu tür ping’leri ara sıra yapabileceğin, iyi bağlantılı ağlara ait herkese açık looking glass servislerini arayabilirsin
    • TULIP umut verici görünüyordu
      “TULIP’in amacı, konumu iyi bilinen referans landmark host’lardan hedefe yapılan ping RTT gecikme ölçümlerini kullanarak, IP adı veya adresiyle tanımlanan hedef host’un konumunu bulmaktır” deniyor
      https://tulip.slac.stanford.edu/
      Ama yayımlanan endpoint’ler ölmüş gibi
    • https://ensa.fi/papers/geolocation_imc17.pdf içinde birkaç fikir var
      Konumu bilinen RIPE Atlas probe’larından bu IP’ye kadar RTT alma yöntemi, bahsettiğin fikre yakın ve her hâlükârda muhtemelen en iyi yöntem
    • Popüler bir uygulama veya web servisi işletiyorsan kendi AS numaran olur; o AS altında birkaç IP bloğu satın alır ve bu adresleri dünyanın çeşitli sahip olunan ya da kiralık veri merkezlerinden duyurursun
      Bu tür BGP duyuruları, farklı konumlardaki farklı upstream ISP’lere çıkar
      Belirli bir konumdan çıkan duyurunun upstream’i yerel bir ISP ise o veri merkezinin o bölgede olduğunu bir ölçüde tahmin edebilirsin. Ama dünya çapında doğrudan bağlantı sağlayan bir Tier 1 ISP ise bu tahmin bile zorlaşır
      BGP ilişkileri bgp.tools gibi looking glass araçlarında görülebilir: https://bgp.tools/prefix/193.142.125.0/24#connectivity
      Dünyaya dağılmış, konumu bilinen birden fazla probe’dan traceroute çalıştırabilirsen, ara router arayüzlerinin sabit IP’lerine bakarak üçgenleme yapabilirsin
      Ancak Cloudflare gibi bir CDN kullanıp kendi IP bloğunu 200’den fazla PoP’tan duyurur ve trafiği onların özel ağı üzerinden dünya çapındaki veri merkezlerine taşıtırsan bu yöntem de bozulur