Sysmon Tools'un sayfasını incelerken basit bir IP adresini coğrafi konuma çeviren servisi öğrendim, hoşuma gitti. Ücretsiz sürüm ayda 10.000 sorguya kadar izin veriyor. Bu sebeple Powershell ile kullanma yoluna gittim.
Herşeyden önce ipstack.com üzerinde ücretsiz bir hesap açıp API access key'ine sahip olmak gerekiyor.
Varsayalım ki elimde $IPAdresi adında bir değişen var ve içeriğinde coğrafi konumunu sorgulamak istediğim bir IP adresi var.
Sorguları göndermek için $IPAdresi değişkenini kullanarak şöyle bir URI oluşturuyoruz.
$uri = "http://api.ipstack.com/" + $IPAdresi + "?access_key=xxxx-xxx-xxx-xxx"
Daha sonra bu adrese bir Invoke-WebRequest ile istek gönderdim ve sonucu $wr değişkenine kaydettim.
$wr = Invoke-WebRequest -uri $uri -UseBasicParsing
IPStack.com'un cevabı bir JSON nesnesi. Bunu dönüştürebilmek için de şu satırı kullandım:
$json = $wr.content | ConvertFrom-Json
Bu adımdan sonra $json nesnesinin şu alt alanları döndü ki çok işime yaradı.
continent_code: 2 harfli kıta kodu (AF: Afrika, AS: Asya, EU: Avrupa, NA: Kuzey Amerika, OC: Okyanusya, SA: Güney Amerika, AN: Antarktika)
continent_name: Yukarıdakinin tam hali, kıta adı
country_code: 2 harfli ülke kodu (tam liste için Wikipedia sayfasına bakın)
country_name: Yukarıdakinin tam hali, ülke adı
region_code: Bölge kodu. Amerika için eyalet kodları, Türkiye için plaka numaraları.
region_name: Bölge ismi. Amerika için eyalet ismi, Türkiye için şehir ismi.
city: Şehir. Türkye için yukarıdaki ile aynı.
Ayrıntılar için şu sayfaya bakılabilir.
Sonradan aklıma geldi, ama Invoke-WebRequest | ConvertFrom-Json kullanmak yerine tek seferde Invoke-RestMethod kullanılabilir. İkisi de Powershell 3.0 ile gelmiş.
Hiç yorum yok:
Yorum Gönder