mIRC Kullanıcı Girişinde Ülke & Şehir Bilgisi Gösterme 1. Adım: GEOIP API Kullanımı (dış istek için soket) Kod:
on *:JOIN:#: {
if ($nick != $me) {
; IP veya host üzerinden bilgi almak için bir soket isteği gönderiyoruz
.whois $nick
}
}
raw 311:*: {
; $2 = nick, $3 = kullanıcı adı, $4 = host
set %geoip.nick $2
set %geoip.host $4
; ip-api.com üzerinden veri çek (soket başlat)
sockclose geoip
sockopen geoip ip-api.com 80
}
;2. Adım: Soket ile API’ye İstek Gönder
on *:sockopen:geoip: {
if ($sockerr > 0) return
sockwrite -n geoip GET /json/%geoip.host HTTP/1.1
sockwrite -n geoip Host: ip-api.com
sockwrite -n geoip $crlf
}
;3. Adım: API Yanıtını Oku ve Ülke & Şehir Bilgisi Yazdır
on *:sockread:geoip: {
var %data
sockread %data
if (%data != $null) {
if (%data iswm *country*) {
var %ulke = $json(%data, country)
var %sehir = $json(%data, city)
; Kullanıcıya özel mesaj gönder
msg %geoip.nick Hoş geldin! IP lokasyonuna göre bulunduğun yer: %sehir, %ulke
}
}
}
;4. Adım: JSON Verisini Ayıklamak İçin Küçük Yardımcı Alias
alias json {
var %data = $1-
var %field = $2
return $gettok($gettok(%data, $calc($findtok(%data,%field,1,34) + 1), 34),1,34)
}
Bu sistem ip-api.com üzerinden sorgu yapar (günde 45 sorgu limiti ücretsizdir).
IP bilgileri, kullanıcı host'undan alınır.
Kullanıcıların IP'si cloaked (gizli) ise şehir bilgisi alınamayabilir. Dilersen yanıtları sadece op olanlara göster, ya da log dosyasına yazdır gibi özellikler de eklenebilir. Alıntıdır. |