![]() |
| mIRC Scripting Hazır Kodlar mIRC Scriptinglerinizde kullanabileceğiniz hazır kodlara bu başlık altından ulaşabilirsiniz. |
| | Seçenekler | Stil |
| |
| | #1 |
| Merhaba, /ip komutuyla çalışan, ipregistry.co API'sini kullanan bir IP sorgulama scripti paylaşıyorum. Özellikler: /ip → kendi IP'ni sorgular /ip 8.8.8.8 → istediğin IP'yi sorgular IP, Ülke, Bölge (il), Şehir, Posta Kodu, Operatör/ISP, Saat Dilimi bilgilerini ayrı bir pencerede (@IP) gösterir SSL (443 port) üzerinden çalışır HTTP durum kodu kontrolü ve bağlantı hatası yönetimi mevcut Sağlam JSON parse mantığı (iç içe alanlar birbirine karışmıyor) Kurulum: Dosyayı indir, mIRC'te Alt+R ile Script Editör'ü aç File > Load işlemiyle veya içeriği kopyala-yapıştır ile ekle /ip yaz, dene HTML-Kodualias ip {
if ($sock(ip)) sockclose ip
sockopen -e ip api.ipregistry.co 443
sockmark ip $iif($1,$1,$null)
echo -a ** ip: sorgulanıyor $iif($1,$1,kendi IP'n) ...
}
on *:sockopen:ip:{
if ($sockerr) {
echo -a ** ip: bağlantı kurulamadı - $sock(ip).wserr
return
}
; her yeni bağlantıda durum değişkenlerini sıfırla
unset %ip.first %ip.inbody %ip.block
var %hedefip = $sock(ip).mark
; fields= parametresi sayesinde yanıt tek seviye iç içe kalır,
; gereksiz alanlar (flag, currency, security vb.) hiç gelmez
var %fields = ip,location.country.name,location.region.name,location.city,location.postal,connection.organization,time_zone.name
var %target = / $+ %hedefip $+ ?key=tryout&fields= $+ %fields
sockwrite -n $sockname GET %target HTTP/1.1
sockwrite -n $sockname Host: api.ipregistry.co
sockwrite -n $sockname User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:136.0) Gecko/20100101 Firefox/136.0
sockwrite -n $sockname Accept: application/json
sockwrite -n $sockname Connection: close
sockwrite -n $sockname
}
on *:sockread:ip:{
if ($sockerr) {
echo -a ** ip: okuma hatası - $sock(ip).wserr
return
}
var %data
sockread -f %data
if ($sockbr == 0) { return }
if (!$window(@IP)) { window -ne @IP }
; ilk satır HTTP durum satırıdır (örn. HTTP/1.1 200 OK) - kontrol et
if (%ip.first != $true) {
%ip.first = $true
if ($regex(%data,/^HTTP\/\d\.\d\s+(\d+)/)) {
if ($regml(1) != 200) {
echo @IP ** ip: sunucu hata kodu döndürdü: $regml(1) (tryout anahtarı limiti dolmuş olabilir)
sockclose ip
}
}
return
}
; header/body ayracı: boş satır
if (%ip.inbody != $true) {
if (%data == $null) { %ip.inbody = $true }
return
}
var %line = %data
; --- blok (obje) bağlamı takibi ---
if ($regex(%line,/^\s*"country"\s*:\s*\{/)) { %ip.block = country | return }
if ($regex(%line,/^\s*"region"\s*:\s*\{/)) { %ip.block = region | return }
if ($regex(%line,/^\s*"connection"\s*:\s*\{/)) { %ip.block = connection | return }
if ($regex(%line,/^\s*"time_zone"\s*:\s*\{/)) { %ip.block = timezone | return }
if ($regex(%line,/^\s*\}/)) { %ip.block = $null | return }
; --- alan çıkarımı (bağlama göre) ---
if ($regex(%line,/"ip"\s*:\s*"([^"]+)"/)) {
echo @IP ** IP: $regml(1)
return
}
if (%ip.block == country) && ($regex(%line,/"name"\s*:\s*"([^"]+)"/)) {
echo @IP ** Ülke: $regml(1)
return
}
if (%ip.block == region) && ($regex(%line,/"name"\s*:\s*"([^"]+)"/)) {
echo @IP ** Bölge (il): $regml(1)
return
}
if ($regex(%line,/"city"\s*:\s*"([^"]+)"/)) {
echo @IP ** Şehir: $regml(1)
return
}
if ($regex(%line,/"postal"\s*:\s*"([^"]+)"/)) {
echo @IP ** Posta Kodu: $regml(1)
return
}
if (%ip.block == connection) && ($regex(%line,/"organization"\s*:\s*"([^"]+)"/)) {
echo @IP ** Operatör/ISP: $regml(1)
return
}
if (%ip.block == timezone) && ($regex(%line,/"name"\s*:\s*"([^"]+)"/)) {
echo @IP ** Saat Dilimi: $regml(1)
echo @IP ----------------------------------------
return
}
}
on *:sockclose:ip:{
if ($sockerr) { echo -a ** ip: bağlantı hata ile kapandı - $sock(ip).wserr }
unset %ip.first %ip.inbody %ip.block
}
________________ "Sevilmenin kıymeti bilinmiyorsa, Uzaklaşmak En güzeli ki üzülen sen olmayasın" | |
| |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |