Tekil Mesaj gösterimi
Alt 18 Mayıs 2025, 10:12   #1
Lexina
Lexina - ait Kullanıcı Resmi (Avatar)

Standart 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.

Konu Feragat tarafından (20 Mayıs 2025 Saat 22:20 ) değiştirilmiştir.. Sebep: Code Tag