IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası

IRCForumları - IRC ve mIRC Kullanıcılarının Buluşma Noktası (https://www.ircforumlari.net/)
-   mIRC Scripting Sorunları (https://www.ircforumlari.net/mirc-scripting-sorunlari/)
-   -   Çözüldü Nick Takip Sistemi Hk. (https://www.ircforumlari.net/mirc-scripting-sorunlari/1065516-nick-takip-sistemi-hk.html)

dynAsty 28 Temmuz 2025 12:04

Nick Takip Sistemi Hk.
 
Merhaba if ailesi ;

Ben nick takip sistemi ariyorum. bir nickin daha once girdiği nicki ip sistemine göre tanitimi yaparak daha once bu nick ile giris yapmistir. uyarisini vermesi icin bir kod a ihtiyacim var yardimlarinizi bekliyor saygilarimi iletiyorum. simdiden teşekkür ederim

iyi forumlar..

Coderlab 29 Temmuz 2025 00:31

Cevap: Nick Takip Sistemi Hk.
 
merhaba sunucuda oper/admin yetkiniz var mı. notice olarak nasıl geliyor kullanıcı girişi ip nick v.s

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 00:26 -->-> Daha önceki mesaj 00:17 --

Alıntı:

Coderlab Nickli Üyeden Alıntı (Mesaj 1043049277)
merhaba sunucuda oper/admin yetkiniz var mı. notice olarak nasıl geliyor kullanıcı girişi ip nick v.s

sunucuda admin/oper oldugunuzu ve noticeleri gördügünüzü varsayıyorum.
aşağıdaki code işinizi görür.
Kod:

on *:START: {
  if (!$hget(nicktakip)) {
    hmake nicktakip 100
    if ($isfile(nicktakip.db)) {
      hload nicktakip nicktakip.db
      echo -a nicktakip.db dosyasından kayıtlar yüklendi.
    }
    else {
      echo -a Yeni hash table oluşturuldu.
    }
  }
}

on *:EXIT: {
  if ($hget(nicktakip)) {
    hsave nicktakip nicktakip.db
    echo -a Kayıtlar nicktakip.db dosyasına kaydedildi.
  }
}

on ^*:NOTICE:*Client connecting*:*:{
  if ($regex($1-,: ([^ ]+) \([^@]+@([^)]+)\))) {
    var %nick = $regml(1)
    who +I %nick
  }
}

RAW 352:*:{
  var %ip = $6
  var %nick = $7
  if ($regex(%ip,(\d+\.\d+\.\d+\.\d+))) {
    %ip = $regml(1)
  }
  if (!$hget(nicktakip,%ip)) {
    hadd nicktakip %ip %nick
    echo -a [NickTakip] %nick (%ip) ilk kez kaydedildi.
  }
  else {
    var %kayitli = $hget(nicktakip,%ip)
    if ($istok(%kayitli,%nick,44) == $false) {
      echo -a 4[UYARI] %ip IP daha önce şu nick/lerle giriş yaptı: %kayitli (şimdi: %nick)
      hadd nicktakip %ip $addtok(%kayitli,%nick,44)
    }
  }
}

Not: Mircinizde farklı bi raw 352 var ise çakışma olabilir. Dikkat edin.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 00:31 -->-> Daha önceki mesaj 00:26 --

Alıntı:

Coderlab Nickli Üyeden Alıntı (Mesaj 1043049277)
merhaba sunucuda oper/admin yetkiniz var mı. notice olarak nasıl geliyor kullanıcı girişi ip nick v.s

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 00:26 -->-> Daha önceki mesaj 00:17 --



sunucuda admin/oper oldugunuzu ve noticeleri gördügünüzü varsayıyorum.
aşağıdaki code işinizi görür.
Kod:

on *:START: {
  if (!$hget(nicktakip)) {
    hmake nicktakip 100
    if ($isfile(nicktakip.db)) {
      hload nicktakip nicktakip.db
      echo -a nicktakip.db dosyasından kayıtlar yüklendi.
    }
    else {
      echo -a Yeni hash table oluşturuldu.
    }
  }
}

on *:EXIT: {
  if ($hget(nicktakip)) {
    hsave nicktakip nicktakip.db
    echo -a Kayıtlar nicktakip.db dosyasına kaydedildi.
  }
}

on ^*:NOTICE:*Client connecting*:*:{
  if ($regex($1-,: ([^ ]+) \([^@]+@([^)]+)\))) {
    var %nick = $regml(1)
    who +I %nick
  }
}

RAW 352:*:{
  var %ip = $6
  var %nick = $7
  if ($regex(%ip,(\d+\.\d+\.\d+\.\d+))) {
    %ip = $regml(1)
  }
  if (!$hget(nicktakip,%ip)) {
    hadd nicktakip %ip %nick
    echo -a [NickTakip] %nick (%ip) ilk kez kaydedildi.
  }
  else {
    var %kayitli = $hget(nicktakip,%ip)
    if ($istok(%kayitli,%nick,44) == $false) {
      echo -a 4[UYARI] %ip IP daha önce şu nick/lerle giriş yaptı: %kayitli (şimdi: %nick)
      hadd nicktakip %ip $addtok(%kayitli,%nick,44)
    }
  }
}

Not: Mircinizde farklı bi raw 352 var ise çakışma olabilir. Dikkat edin.

Aşağıda clear temizleme de ekledim. olurda temizlemek isterseniz
Kod:

alias takipclear {
  if ($hget(nicktakip)) {
    hfree nicktakip
    hmake nicktakip 100
  }
  if ($isfile(nicktakip.db)) {
    .remove nicktakip.db
  }
  echo -a 4[NickTakip] Tüm kayıtlar ve nicktakip.db temizlendi!
}

/takipclear seklinde kullanabilirsiniz.

dynAsty 29 Temmuz 2025 17:33

Cevap: Nick Takip Sistemi Hk.
 
kod çalışmadı bi sorun olabilir mi ?

Bozkurt- 29 Temmuz 2025 20:13

Cevap: Nick Takip Sistemi Hk.
 
Alıntı:

dynAsty Nickli Üyeden Alıntı (Mesaj 1043049739)
kod çalışmadı bi sorun olabilir mi ?

Kodda bir hata yok. Kod çalışır ama bunun olması için kayıt olması lazım.Yani kodu ekledikten sonra sunucuya giren çıkan kim var ise onları kayıt eder. Bir sonraki girişinde bunu gösterir.
Kodun çalışması için admin / oper yetkisine sahip olmanız ve sunucu noticelerini görüyor olmanız lazım.
Exiting ve connecting noticeleri nick değiştirme noticeleri statüste yoksa yansıtıldığı bir kanal vardır o zaman kodun düzenlenmesi gerekir.

Oper admin yetkisine sahipseniz sunucunuzda kullanılan koruma botu zaten giriş çıkışları nick değişimlerini kayıt ediyordur. Bot üzerinden sorgulama yapabilirsiniz.

Oper admin değilseniz ip adresini göremeyeceğiniz için önceki nicki, ne zaman girdiği vs gibi şeyleri göremezsiniz.

Coderlab 29 Temmuz 2025 22:11

Cevap: Nick Takip Sistemi Hk.
 
Alıntı:

dynAsty Nickli Üyeden Alıntı (Mesaj 1043049739)
kod çalışmadı bi sorun olabilir mi ?

sunucunuzdaki snoticelerin biçimini bilmedigim için bi test sunucusuna göre yazmıştım
aşagıdaki gibi denermisiniz.

Kod:

on *:START: {
  if (!$hget(nicktakip)) {
    hmake nicktakip 100
    if ($isfile(nicktakip.db)) {
      hload nicktakip nicktakip.db
      echo -a nicktakip.db dosyasından kayıtlar yüklendi.
    }
    else {
      echo -a Yeni hash table oluşturuldu.
    }
  }
}

on *:EXIT: {
  if ($hget(nicktakip)) {
    hsave nicktakip nicktakip.db
    echo -a Kayıtlar nicktakip.db dosyasına kaydedildi.
  }
}

on *:snotice:*connecting*:{
  who +I $9
}

RAW 352:*:{
  var %ip = $4
  var %nick = $6
  if (!$hget(nicktakip,%ip)) {
    hadd nicktakip %ip %nick
    echo -a [NickTakip] %nick ( %ip ) ilk kez kaydedildi.
  }
  else {
    var %kayitli = $hget(nicktakip,%ip)
    echo -a 4[UYARI] 3 %ip 1IP Adresi ile 4 %nick 1 nicki daha önce şu nick/lerle giriş yaptı: [ %kayitli ]
    if (!$istok(%kayitli,%nick,32)) {
      hadd nicktakip %ip $addtok(%kayitli,%nick,32)
    }
  }
}

Mircinizi kapatıp açın remoteyi yükledikten sonra.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 22:04 -->-> Daha önceki mesaj 22:02 --

Alıntı:

Coderlab Nickli Üyeden Alıntı (Mesaj 1043049872)
sunucunuzdaki snoticelerin biçimini bilmedigim için bi test sunucusuna göre yazmıştım
aşagıdaki gibi denermisiniz.

Kod:

on *:START: {
  if (!$hget(nicktakip)) {
    hmake nicktakip 100
    if ($isfile(nicktakip.db)) {
      hload nicktakip nicktakip.db
      echo -a nicktakip.db dosyasından kayıtlar yüklendi.
    }
    else {
      echo -a Yeni hash table oluşturuldu.
    }
  }
}

on *:EXIT: {
  if ($hget(nicktakip)) {
    hsave nicktakip nicktakip.db
    echo -a Kayıtlar nicktakip.db dosyasına kaydedildi.
  }
}

on *:snotice:*connecting*:{
  who +I $9
}

RAW 352:*:{
  var %ip = $4
  var %nick = $6
  if (!$hget(nicktakip,%ip)) {
    hadd nicktakip %ip %nick
    echo -a [NickTakip] %nick ( %ip ) ilk kez kaydedildi.
  }
  else {
    var %kayitli = $hget(nicktakip,%ip)
    echo -a 4[UYARI] 3 %ip 1IP Adresi ile 4 %nick 1 nicki daha önce şu nick/lerle giriş yaptı: [ %kayitli ]
    if (!$istok(%kayitli,%nick,32)) {
      hadd nicktakip %ip $addtok(%kayitli,%nick,32)
    }
  }
}

Mircinizi kapatıp açın remoteyi yükledikten sonra.

Extra olarak
Kod:

alias ipsor {
  if ($1 == $null) {
    echo -a Kullanım: /ipsor <ip>
    return
  }

  if ($hget(nicktakip,$1)) {
    echo -a 12[IPSOR] $1 IP'si şu nick/lerle giriş yapmış: $v1
  }
  else {
    echo -a 4[IPSOR] $1 IP'si için kayıt bulunamadı.
  }
}

/ipsor ip seklinde de ipten hangi nick/ler girmiş bakabilirsiniz.

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 22:09 -->-> Daha önceki mesaj 22:04 --

Kod:

alias nicksor {
  if ($1 == $null) {
    echo -a Kullanım: /nicksor <nick>
    return
  }
  var %i = 1, %bulundu = 0
  while ($hget(nicktakip,%i).item) {
    var %ip = $v1
    var %nickler = $hget(nicktakip,%i).data
    if ($istok(%nickler,$1,32)) {
      echo -a 12[NICKSOR] $1 nicki şu IP ile bağlanmış: %ip
      inc %bulundu
    }
    inc %i
  }
  if (!%bulundu) {
    echo -a 4[NICKSOR] $1 nicki için kayıt bulunamadı.
  }
}

/nicksor nick seklinde de nicke ait ip bilgisine ulaşabilirsiniz. :)

--IRCForumlari.NET ; Flood Engellendi -->-> Yeni yazılan mesaj 22:11 -->-> Daha önceki mesaj 22:09 --

Kod:

alias nicksor {
  if ($1 == $null) {
    echo -a Kullanım: /nicksor <nick>
    return
  }
  var %i = 1, %bulundu = 0
  while ($hget(nicktakip,%i).item) {
    var %ip = $v1
    var %nickler = $hget(nicktakip,%i).data
    if ($istok(%nickler,$1,32)) {
      echo -a 12[NICKSOR] $1 nicki şu IP ile bağlanmış: %ip
      ; otomatik ipsor çalıştır
      ipsor %ip
      inc %bulundu
    }
    inc %i
  }
  if (!%bulundu) {
    echo -a 4[NICKSOR] $1 nicki için kayıt bulunamadı.
  }
}

Böylede sen /nicksor nick yaparsın eğer kayıtlı ip varsa otomatik olarak o ipi ipsor yapar böylece sen sadece nicki sorgularsın. v.s v.s daha yazıyım mı :)

Caitlyn 30 Temmuz 2025 15:58

Cevap: Nick Takip Sistemi Hk.
 
bu yeterliydi ilginiz ve alakanız için ayrı ayrı teşekkür eder saygılarımı sunuyorum.


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 11:38.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2025, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
Copyright ©2004 - 2025 IRCForumlari.Net Sparhawk