IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi

IRCRehberi.Net- Türkiyenin En iyi IRC ve Genel Forum Sitesi (https://www.ircrehberi.net/)
-   Eggdrop, NeoStats, BNC (https://www.ircrehberi.net/eggdrop-neostats-bnc/)
-   -   Web-Master Botu (2026) Test Edilmistir. (https://www.ircrehberi.net/eggdrop-neostats-bnc/250460-web-master-botu-2026-test-edilmistir.html)

KivanC 16 Ağustos 2026 00:31

Web-Master Botu (2026) Test Edilmistir.
 
🤖 Why-Master | Gelişmiş mIRC Webmaster Asistan Botu

Herkese selamlar! mIRC sunucunuz ve [#Web] kanalınız için sıfırdan geliştirilen, webmasterlar ve site yöneticileri düşünülerek tasarlanmış **Why-Master** botu yayında!

Botumuz; alan adı sorgularından altyapı analizine, güvenlik başlıklarından hızlı taramalara kadar birçok profesyonel aracı IRC ortamına hızlıca getirir.

✨ Öne Çıkan Özellikler & Komutlar
* !domain <site.com> — Kapsamlı WHOIS bilgileri ve alan adının bitiş tarihine kalan gün sayacı.
* !incele <site.com> — HTTP durum kodunu, sunucu yazılımını ve ana sayfa başlığını anında raporlar.
* !tech <site.com> — Altyapı ve teknoloji analizi yapar (Örn: WordPress tespiti vb.).
* !sec <site.com> — Güvenlik başlıklarını denetler (HSTS, CSP, X-Frame-Options vb.).
* !sub <site.com> — Hızlı alt alan adı (subdomain) taraması gerçekleştirir.
* !dns <site.com> — Alan adının IP adresini (A kaydını) çözer.
* !ptr <ip-adresi> — Ters DNS (PTR) sorgulaması yapar.
* !ssl <site.com> — SSL/TLS port 443 bağlantı ve el sıkışma testi gerçekleştirir.
* !ping <host> — TCP bağlantı ve gecikme testi yapar.
* !uptime — Botun kesintisiz çalışma süresini gösterir.

💡 Nasıl Kullanılır?
Sunucumuzdaki **#Web** kanalına giriş yaptığınızda, **Why-Master** botu sizi özel mesaj ile otomatik olarak karşılar ve rehber gönderir. Tüm komut listesini ve detayları görmek için kanal içerisinde **!Webmaster** yazmanız yeterlidir!


HTML-Kodu:

; ============================================================
;  Why-Master — mIRC Scripting Language (mSL) Webmaster Botu
;  (Güncellenmiş Sürüm: Özelden Karşılama ve Bot Reklamı)
; ============================================================

on 1:LOAD:{
  hmake cache 200
  hmake blacklist 100
  hmake ctx 100
  hmake buf 100
  hmake wdata 50
  set %ww.starttime $ctime
  set %ww.admins SeninNickin
  set %ww.channels #Web
  set %ww.nickservpass deneme123
  set %ww.operpass deneme123
  set %ww.server deneme.com
  set %ww.cachettl 300
  set %ww.cachehit 0
  set %ww.cachemiss 0
  echo -a Why-Master yüklendi. Bağlanmak için: /server %ww.server
}

on 1:UNLOAD:{
  hfree cache | hfree blacklist | hfree ctx | hfree buf | hfree wdata
}

on 1:CONNECT:{
  if ($server == %ww.server) {
    if ($me != Why-Master) { /nick Why-Master }
    .timer 1 2 msg nickserv identify %ww.nickservpass
    .timer 1 3 oper Why-Master %ww.operpass
    .timer 1 5 join %ww.channels
  }
}

; ---------------- #Web Kanalı Karşılama ve Özel Mesaj (Reklam) ----------------
on *:JOIN:#Web:{
  if ($nick == $me) {
    msg #Web Merhaba #Web kanalı! Why-Master aktif, tüm webmaster araçları hizmetinizde. Komut listesi için kanalda **!Webmaster** yazabilirsiniz.
  }
  else {
    ; Kanala genel hoş geldin mesajı
    msg #Web Hoş geldin $nick ! #Web kanalımıza sefalar getirdin. Webmaster araçları için kanalda **!Webmaster** yazabilirsin.
   
    ; Kullanıcının özelene reklam ve tanıtım mesajı gönderme (.timer ile kısa bir gecikme eklenerek bot korumalarına takılması önlenir)
    .timer 1 2 ww_ozel_reklam $nick
  }
}

; ---------------- Özel Tanıtım ve Reklam Metni ----------------
alias ww_ozel_reklam {
  var %n = $1
  msg %n ========================================================
  msg %n  SELAM %n ! BİR WEBMASTER ASİSTANI İLE TANIŞMAYA HAZIR MISIN?
  msg %n ========================================================
  msg %n  #Web kanalına giriş yaptığın için **Why-Master** botu
  msg %n  otomatik olarak seninle bağlantı kurdu.
  msg %n 
  msg %n  Sunucumuzdaki en gelişmiş web analiz ve güvenlik
  msg %n  botu olan Why-Master ile şu işlemleri yapabilirsin:
  msg %n  • Alan adı WHOIS ve Kalan Gün Takibi (!domain)
  msg %n  • Sunucu Altyapı & Teknoloji Analizi (!tech / !incele)
  msg %n  • Güvenlik Başlıkları & HSTS/CSP Denetimi (!sec)
  msg %n  • Hızlı Subdomain ve DNS Tarama (!sub / !dns)
  msg %n 
  msg %n  Tüm komut listesini görmek veya hemen kullanmaya
  msg %n  başlamak için #Web kanalında **!Webmaster** yazman yeterli!
  msg %n ========================================================
}

; ---------------- Komut dispatcher ----------------
on *:TEXT:*:#Web:{
  var %txt = $1
  if (%txt == !Webmaster) || (%txt == !webmaster) {
    ww_ozel_yardim $nick
    return
  }
 
  if ($left(%txt,1) != !) { return }
  var %cmd = $mid(%txt,2,$len(%txt))
  var %arg = $2-
 
  if (%cmd == yardim) || (%cmd == help)  { ww_yardim $chan $nick }
  elseif (%cmd == domain)                { ww_domain $chan $nick %arg }
  elseif (%cmd == incele)                { ww_incele $chan $nick %arg }
  elseif (%cmd == headers)              { ww_headers $chan $nick %arg }
  elseif (%cmd == tech)                  { ww_tech $chan $nick %arg }
  elseif (%cmd == sec)                  { ww_sec $chan $nick %arg }
  elseif (%cmd == mx)                    { ww_mx $chan $nick %arg }
  elseif (%cmd == sub)                  { ww_sub $chan $nick %arg }
  elseif (%cmd == dns)                  { ww_dns $chan $nick %arg }
  elseif (%cmd == ptr)                  { ww_ptr $chan $nick %arg }
  elseif (%cmd == ssl)                  { ww_ssl $chan $nick %arg }
  elseif (%cmd == whois)                { ww_whois $chan $nick %arg }
  elseif (%cmd == ping)                  { ww_ping $chan $nick %arg }
  elseif (%cmd == blacklist)            { ww_blacklist $chan $nick %arg }
  elseif (%cmd == cache)                { ww_cache $chan $nick }
  elseif (%cmd == uptime)                { ww_uptime $chan $nick }
}

; ---------------- Özelden Komut Listesi Gönderme ----------------
alias ww_ozel_yardim {
  var %n = $1
  msg %n ========================================================
  msg %n  WHY-MASTER WEBMASTER KOMUT LISTESI
  msg %n ========================================================
  msg %n  !domain <site.com>  - WHOIS bilgileri ve kalan gün sayacı
  msg %n  !incele <site.com>  - HTTP durum kodu, sunucu ve sayfa başlığı
  msg %n  !tech <site.com>    - Altyapı ve teknoloji analizi (WordPress vb.)
  msg %n  !sec <site.com>      - Güvenlik başlıkları kontrolü (HSTS, CSP vb.)
  msg %n  !headers <site.com>  - Ham HTTP response header'ları
  msg %n  !sub <site.com>      - Hızlı alt alan adı (subdomain) taraması
  msg %n  !dns <site.com>      - IP adresini çözümleme (A kaydı)
  msg %n  !ptr <ip-adresi>    - Ters DNS (PTR) sorgusu
  msg %n  !ssl <site.com>      - SSL/TLS port 443 bağlantı testi
  msg %n  !ping <host>        - TCP bağlantı gecikme testi
  msg %n  !whois <irc-nick>    - IRC kullanıcısı hakkında bilgi
  msg %n  !uptime              - Botun çalışma süresi
  msg %n ========================================================
}

; ---------------- Yardımcı alias'lar ----------------
alias ww_clean {
  var %d = $remove($1,http://,https://)
  return $gettok(%d,1,47)
}

alias ww_isadmin {
  return $istok(%ww.admins,$1,32)
}

alias ww_cache_get {
  var %val = $hget(cache,$1)
  if (%val == $null) { inc %ww.cachemiss | return $null }
  var %ts = $gettok(%val,1,1)
  if ($calc($ctime - %ts) > %ww.cachettl) { hdel cache $1 | inc %ww.cachemiss | return $null }
  inc %ww.cachehit
  return $gettok(%val,2-,1)
}

alias ww_cache_set {
  hadd cache $1 $ctime $chr(1) $2-
}

alias ww_sockerror {
  var %sockname = $2
  var %ctxv = $hget(ctx,%sockname)
  if (%ctxv != $null) {
    var %chan = $gettok(%ctxv,1,1), %nick = $gettok(%ctxv,2,1)
    msg %chan %nick $+ : bağlantı hatası ( $+ $sock(%sockname).wserr $+ )
    hdel ctx %sockname
  }
  hdel buf %sockname
  sockclose %sockname
}

alias ww_yardim {
  msg $1 $2 $+ : Komut listesi özel mesaj olarak gönderildi. Lütfen özel pencereni kontrol et!
  ww_ozel_yardim $2
}

alias ww_uptime {
  msg $1 [UPTIME] Why-Master $duration($calc($ctime - %ww.starttime)) süredir çalışıyor.
}

alias ww_cache {
  var %n = $hget(cache,0).item
  var %total = $calc(%ww.cachehit + %ww.cachemiss)
  var %oran = $iif(%total > 0,$calc(%ww.cachehit * 100 / %total),0)
  msg $1 [CACHE] kayıt= %n hit= %ww.cachehit miss= %ww.cachemiss oran= %oran $+ % ttl= %ww.cachettl sn
}

alias ww_blacklist {
  var %chan = $1, %nick = $2, %sub = $3, %domain = $ww_clean($4)
  if (%sub == $null) { msg %chan %nick $+ : Kullanım: !blacklist ekle^sil^listele <alan-adi> | return }
  if (%sub == listele) {
    var %n = $hget(blacklist,0).item
    if (%n == 0) { msg %chan Kara liste boş. | return }
    var %list = $null, %i = 1
    while (%i <= %n) { %list = %list $hget(blacklist,%i).item | inc %i }
    msg %chan [BLACKLIST] %list
    return
  }
  if ($ww_isadmin(%nick) == $false) { msg %chan %nick $+ : Bu komutu kullanma yetkin yok. | return }
  if (%sub == ekle) { hadd blacklist %domain 1 | msg %chan %domain kara listeye eklendi. | return }
  if (%sub == sil) { hdel blacklist %domain | msg %chan %domain kara listeden çıkarıldı. | return }
}

alias ww_domain {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !domain example.com | return }
  var %cached = $ww_cache_get(domain_ $+ %domain)
  if (%cached != $null) { ww_print_domain %chan %domain %cached $true | return }
  var %sock = who_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %nick $chr(1) %domain $chr(1) 1
  sockopen %sock whois.iana.org 43
}

on 1:sockopen:who_*:{
  if ($sockerr) { ww_sockerror who $sockname | return }
  var %ctxv = $hget(ctx,$sockname)
  var %domain = $gettok(%ctxv,3,1), %stage = $gettok(%ctxv,4,1)
  if (%stage == 1) { sockwrite -n $sockname $gettok(%domain,-1,46) }
  else { sockwrite -n $sockname %domain }
}

on 1:sockread:who_*:{
  if ($sockerr) { return }
  var %line
  sockread %line
  if ($sockbr == 0) { return }
  hadd buf $sockname $hget(buf,$sockname) $+ %line $+ $crlf
}

on 1:sockclose:who_*:{
  var %ctxv = $hget(ctx,$sockname)
  if (%ctxv == $null) { return }
  var %chan = $gettok(%ctxv,1,1), %nick = $gettok(%ctxv,2,1), %domain = $gettok(%ctxv,3,1), %stage = $gettok(%ctxv,4,1)
  var %data = $hget(buf,$sockname)
  hdel buf $sockname | hdel ctx $sockname
  if (%stage == 1) {
    var %server = $iif($regex(ww,%data,/whois:\s*(\S+)/i),$regml(ww,1),$null)
    if (%server == $null) { %server = whois. $+ $gettok(%domain,-1,46) }
    var %sock2 = who2_ $+ $ticks
    hadd ctx %sock2 %chan $chr(1) %nick $chr(1) %domain $chr(1) 2
    sockopen %sock2 %server 43
  }
  else { ww_parse_whois %chan %domain %data }
}

on 1:sockopen:who2_*:{ ww_who_open $sockname }
on 1:sockread:who2_*:{ ww_who_read $sockname }
on 1:sockclose:who2_*:{ ww_who_close $sockname }

alias ww_who_open {
  if ($sockerr) { ww_sockerror who $1 | return }
  var %ctxv = $hget(ctx,$1)
  sockwrite -n $1 $gettok(%ctxv,3,1)
}
alias ww_who_read {
  var %line
  sockread %line
  if ($sockbr == 0) { return }
  hadd buf $1 $hget(buf,$1) $+ %line $+ $crlf
}
alias ww_who_close {
  var %ctxv = $hget(ctx,$1)
  if (%ctxv == $null) { return }
  var %chan = $gettok(%ctxv,1,1), %domain = $gettok(%ctxv,3,1)
  var %data = $hget(buf,$1)
  hdel buf $1 | hdel ctx $1
  ww_parse_whois %chan %domain %data
}

alias ww_parse_whois {
  var %chan = $1, %domain = $2, %data = $3-
  var %registrar = $iif($regex(ww,%data,/Registrar:\s*(.+)/i),$regml(ww,1),$null)
  var %created  = $iif($regex(ww,%data,/Creation Date:\s*(.+)/i),$regml(ww,1),$null)
  var %expires  = $iif($regex(ww,%data,/Registry Expiry Date:\s*(.+)/i),$regml(ww,1),$null)
  var %status    = $iif($regex(ww,%data,/Domain Status:\s*(.+)/i),$regml(ww,1),$null)
  var %result = %registrar $chr(1) %created $chr(1) %expires $chr(1) %status
  ww_cache_set domain_ $+ %domain %result
  ww_print_domain %chan %domain %result $false
}

alias ww_print_domain {
  var %chan = $1, %domain = $2, %data = $3-, %fromcache = $4
  var %registrar = $gettok(%data,1,1), %created = $gettok(%data,2,1), %expires = $gettok(%data,3,1), %status = $gettok(%data,4,1)
  var %tag = $iif(%fromcache == $true,(önbellekten),$null)
  var %kalan = $iif(%expires != $null,$duration($calc($cvtime(%expires) - $ctime)),Bilinmiyor)
 
  msg %chan [DOMAIN] %domain %tag $+ :
  if (%registrar != $null) { msg %chan  Registrar: %registrar }
  if (%expires != $null)  { msg %chan  Bitiş Tarihi: %expires (Kalan: %kalan) }
  if (%status != $null)    { msg %chan  Durum: %status }
  if ($hget(blacklist,%domain) != $null) { msg %chan ⚠ Bu domain kara listede! }
}

alias ww_incele {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !incele example.com | return }
  var %sock = http_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %nick $chr(1) %domain $chr(1) $ticks $chr(1) incele
  sockopen %sock %domain 80
}

alias ww_headers {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !headers example.com | return }
  var %sock = http_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %nick $chr(1) %domain $chr(1) $ticks $chr(1) headers
  sockopen %sock %domain 80
}

alias ww_tech {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !tech example.com | return }
  var %sock = http_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %nick $chr(1) %domain $chr(1) $ticks $chr(1) tech
  sockopen %sock %domain 80
}

alias ww_sec {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !sec example.com | return }
  var %sock = http_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %nick $chr(1) %domain $chr(1) $ticks $chr(1) sec
  sockopen %sock %domain 80
}

on 1:sockopen:http_*:{
  if ($sockerr) { ww_sockerror http $sockname | return }
  var %domain = $gettok($hget(ctx,$sockname),3,1)
  sockwrite -n $sockname GET / HTTP/1.1
  sockwrite -n $sockname Host: %domain
  sockwrite -n $sockname User-Agent: Why-Master/1.0
  sockwrite -n $sockname Connection: close
  sockwrite -n $sockname $crlf
}

on 1:sockread:http_*:{
  if ($sockerr) { return }
  var %line
  sockread %line
  if ($sockbr == 0) { return }
  hadd buf $sockname $hget(buf,$sockname) $+ %line $+ $crlf
}

on 1:sockclose:http_*:{
  var %ctxv = $hget(ctx,$sockname)
  if (%ctxv == $null) { return }
  var %chan = $gettok(%ctxv,1,1), %nick = $gettok(%ctxv,2,1), %domain = $gettok(%ctxv,3,1)
  var %mode = $gettok(%ctxv,5,1)
  var %data = $hget(buf,$sockname)
  hdel buf $sockname | hdel ctx $sockname

  if (%mode == headers) { ww_finish_headers %chan %domain %data }
  elseif (%mode == tech) { ww_finish_tech %chan %domain %data }
  elseif (%mode == sec)  { ww_finish_sec %chan %domain %data }
  else { ww_finish_incele %chan %domain %data }
}

alias ww_finish_incele {
  var %chan = $1, %domain = $2, %fulldata = $3-
  var %status = $iif($regex(ww,%fulldata,/^HTTP\/[\d.]+ (\d+)/),$regml(ww,1),?)
  var %server = $iif($regex(ww,%fulldata,/^Server:\s*(.+)$/mi),$regml(ww,1),belirtilmemiş)
  var %title  = $iif($regex(ww,%fulldata,/<title[^>
]*>([^<]+)<\/title>/i),$regml(ww,1),bulunamadı)
  msg %chan [İNCELE] %domain -> Durum: %status | Sunucu: %server | Başlık: %title
}

alias ww_finish_tech {
  var %chan = $1, %domain = $2, %fulldata = $3-
  var %server = $iif($regex(ww,%fulldata,/^Server:\s*(.+)$/mi),$regml(ww,1),Bilinmiyor)
  var %powered = $iif($regex(ww,%fulldata,/^X-Powered-By:\s*(.+)$/mi),$regml(ww,1),Tespit Edilemedi)
  var %wp = $iif($regex(ww,%fulldata,/wp-content|wp-includes/i),Evet,Hayır)
  msg %chan [TECH] %domain Altyapı -> Web Server: %server | X-Powered-By: %powered | WordPress mi?: %wp
}

alias ww_finish_sec {
  var %chan = $1, %domain = $2, %fulldata = $3-
  var %hsts = $iif($regex(ww,%fulldata,/Strict-Transport-Security/i),Var,Yok)
  var %csp  = $iif($regex(ww,%fulldata,/Content-Security-Policy/i),Var,Yok)
  var %xfo  = $iif($regex(ww,%fulldata,/X-Frame-Options/i),Var,Yok)
  msg %chan [SECURITY HEADERS] %domain -> HSTS: %hsts | CSP: %csp | X-Frame-Options: %xfo
}

alias ww_finish_headers {
  var %chan = $1, %domain = $2
  var %fulldata = $replace($3-,$crlf,$chr(29))
  msg %chan [HEADERS] %domain $+ :
  var %n = $numtok(%fulldata,29), %i = 1
  while (%i <= %n) && (%i <= 10) {
    msg %chan  $gettok(%fulldata,%i,29)
    inc %i
  }
}

alias ww_sub {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  if (%domain == $null) { msg %chan %nick $+ : Kullanım: !sub example.com | return }
  msg %chan [SUBDOMAIN] %domain için yaygın alt alan adları taranıyor...
  .timer 1 1 dns www. $+ %domain
  .timer 1 2 dns mail. $+ %domain
  .timer 1 3 dns cpanel. $+ %domain
  .timer 1 4 dns api. $+ %domain
  .timer 1 5 dns admin. $+ %domain
}

alias ww_ssl {
  var %chan = $1, %domain = $ww_clean($3)
  if (%domain == $null) { return }
  var %sock = sslchk_ $+ $ticks
  hadd ctx %sock %chan $chr(1) %domain
  sockopen -e %sock %domain 443
}
on 1:sockopen:sslchk_*:{
  var %ctxv = $hget(ctx,$sockname)
  var %chan = $gettok(%ctxv,1,1), %domain = $gettok(%ctxv,2,1)
  if ($sockerr) { msg %chan [SSL] %domain : Bağlantı kurulamadı. }
  else { msg %chan [SSL] %domain : 443 portu SSL el sıkışması başarılı! }
  hdel ctx %sockname | sockclose $sockname
}

alias ww_dns {
  var %chan = $1, %nick = $2, %domain = $ww_clean($3)
  set %ww.dns.chan %chan | set %ww.dns.nick %nick | set %ww.dns.query %domain
  dns %domain
}
on *:DNS:{
  if (%ww.dns.chan == $null) { return }
  msg %ww.dns.chan [DNS] %ww.dns.query ->
IP: $iif($dns(0) > 0,$dns(1).ip,Çözümlenemedi)
  unset %ww.dns.chan
}



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

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2026, vBulletin Solutions, Inc.

Copyright ©2019 - 2026 | IRCRehberi.Net