اشلونكم شباب وتحياتي الكم والي الحلوين :)
هذي نوع من انواع الblacklist ومفيده كتيييييييير خاصه للصهاينه :P ...
أول شي نزل ال read me :
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BlackHash v1.0 [Naz] ;;
;;;;;;;;;;;;;;;;;;;;;;;;;; this script is formerly known as KBL v3.0
================================================== ================================================
BlackHash v1.0 is the first (to my knowledge) to use a hash table exclusively to store blacklisted
address' instead of using the userlist. The benefit of this is can be significant, especially to
those who maintain large blacklists in large channels. It works in the same manner, the
difference being that it compares a joining users address to the hash table rather than the
userlist. This can drastically decrease mIRC's "hang time" if not remove it all together
when there is a mass join such as after a netsplit.
Reason for the name change: this script was used exclusivly for my own use for months, it didn't
really matter what the name was. Having publicly release it however, as an after thought KBL
sounds kind of dumb to me. Hence the name change.
Unload KBL prior to installing this script.
Unzip the script into your mIRC folder.
To load type --> /load -rs blackhash_1-0.mrc <--
To open the blacklist dialog select BlackHash in the channel or menubar and click BlackHash
-> Settings.
1. Blacklist
Window - This is the window that displays the blacklisted entries. Each address is listed in a
sorted order, not the order in which the were added. The address is followed by the reason,
this is the kick message that will be displayed.
Add button - enter the address you wish to ban in the top of the combo window at left. Type in
the reason in the edit box if you wish to use a reason other than the default. *DO NOT type
a reason in the combo box with the address.
Delete button - select the address in the combo box you wish to remove, click delete or press
alt+D (The address MUST be selected, not simply typed in.)
Number in upper right - Displays the number of entries in the blacklist.
Reason - this is where you'll enter the reason if you want it to be different than the default.
Default reason - this is the reason that will be added to each entry unless you add a different
one above. Simplifies making multiple entries and can be changed.
Ban seconds - enter the number of seconds you want to wait before the address is automatically
unbanned. Helps to keep the banlist from filling up.
Ignore banned user - Will ignore a user that has been banned for the duration of the ban.
Blacklist count - the number of times the script has banned/kicked a blacklisted user.
Do not ������� - this is useful when you make several entries or removals and don't want to
wait for the list to ������� each time. Keep in mind that the list will not update when this
option is selected until you either click the ������� now button or close and reopen the
dialog.
Last Action - displays the last address to be added or deleted.
Set channels - enter the channels you want this script to monitor. This will apply to all
functions of the script. If entering more than one channel seperate them by a comma
(no space). i.e.: #channel1,#channel2 . To set to all channel you are in enter a # by itself.
The BlackHash menu in the nicklist will add directly from there without opening the dialog window
using a preset reason or entering one of your own. It will also ban/kick the user from the channel
using the *!*@host mask.
The BlackHash menu in the query window will kick/ban the user from any common channel you op in
and add to the blacklist. If not in a common channel it will not add to the blacklist at this
time. Will in a future update.
2. Logging
Enable - enables or disables kick/ban logging.
All - Logs all kicks/bans regardless who performs them.
Only my own - Only logs kicks/bans performed by you.
Log unbans - Logs unbans according to all or own set above.
Log *!*@ bans only - This will make the script log only bans that have a wildcard nick!ident.
(this was added for reasons of my own and is not useful to everybody)
Empty log - deletes the kick/ban log
Reset stats - sets stats to zero.
3. Counters
The window on the left when enabled, will count how many times an address has been banned.
The window on the right counts the number of kicks/bans performed by each op.
Echo - will echo those stats to the active window each time the event occurrs.
Troubleshooting:
The script will not blacklist or log from any channel that is not set with the set channels button.
Futher, if you put a space after the comma when entering multiple channels it will not work.
(Correct: #channel1,#channel2 Incorrect: #channel1, #channel2 )
Contact info: [email protected] | http://home.twcny.rr.com/blackhash/
__________________________________________________ __________________________________________________ __________________________________________________ ________________________
وهذي ال addon الي تحطها في الريموت :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BlackHash© v1.0 by [Naz] ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on @*:join:%bh.chan:{
var %bl.taddress = $address($nick,5)
if $hmatch(blacklist, %bl.taddress, 1) {
var %bl.addr = $hmatch(blacklist, %bl.taddress, 1)
var %bl.reason = $hget(blacklist, %bl.addr)
echo $chan 4,1 Blacklisted user, kickbanning...
if ($nick isop $chan) { echo -a 8,1 Blacklisted user is an OP on $chan. Halting action. | halt }
else {
kick $chan $nick %bl.reason | ban -u $+ %bl.secs $chan %bl.addr | inc %bl.kb 1
if (%bl.ignore == 1) { .ignore -u $+ %bl.secs %bl.addr }
}
}
}
on 1:load: {
unset %kbl.* | unset %sl.*
writeini BlackHash_bancount.ini Initialize LastReset $adate
writeini BlackHash_nickcount.ini Initialize LastReset $adate
set %bh.chan CHANNELS NOT SET!
set %bh.enable 0
set %bh.bc 0
set %bh.mban 0
set %bh.tban 0
set %bh.mkick 0
set %bh.tkick 0
set %bl.secs 300
set %bh.bcdate $adate
set %bh.nickdate $adate
set %bl.dr Blacklisted
set %bl.kb 0
set %bh.ref 1
set %bl.dnr 0
}
on 1:start: {
hmake -s blacklist 200 | hload -s blacklist blacklist.hsh
hmake -s kicklog 100 | hload -s kicklog kicklog.hsh
.timerBH.backup 0 1800 { hsave -os blacklist blacklist.hsh }
echo 10,1 BlackHash has been loaded.
}
on 1:exit: {
hsave -os blacklist blacklist.hsh | hsave -os kicklog kicklog.hsh | timerBH.backup off
}
;================================================= ==
;============= Menu and Dialog section =============
;================================================= ==
menu channel {
-
BlackHash
.Settings:dialog -m blackhash blackhash
.-
.Add IP to Blacklist: {
var %a = $$?"Enter address to add"
var %b = $$?"Enter reason"
hadd -s blacklist %a %b
echo -a 4***1 %a 4Added to 1Blacklist
}
}
menu menubar {
-
BlackHash
.Settings:dialog -m blackhash blackhash
.-
.Unload {
if ($?!="Do you want to UNLOAD BlackHash?" == $true) {
unset %bh.* | unset %bl.* | hfree -s blacklist | hfree -s kicklog
timerBH* off | unload -rs BlackHash*
}
}
}
menu nicklist {
-
BlackHash
.Spam drone: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = spam
hadd -s blacklist %a spam drone associated with this address [m]
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 spam
}
}
.Infected drone: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = infected ip/hostmask
hadd -s blacklist %a trojan or virus advertising drone associated with this address [m]
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 trojan or virus advertising
}
}
.-
.Enter reason: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = $$?"Enter reason"
hadd -s blacklist %a %b
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 %b
}
}
}
menu query {
BlackHash
.Add to blacklist {
var %a = $$1
var %b = $comchan(%a,0)
var %c = $address(%a,2)
var %n = 1
while %n <= %b {
if $comchan(%a,%n).op {
ban -u $+ %bl.secs $comchan(%a,%n) %c
kick $comchan(%a,%n) $$1 spam drone associated with this address [m]
}
inc %n
}
if (%b == 0) { echo -d 12 BlackHash notice: %a is not in any common channel with you. }
if (%c != $null) {
hadd -s blacklist %c spam drone associated with this address [m]
}
}
}
dialog -l blackhash {
title "BlackHash v1.0"
size -1 -1 293 236
option dbu
button "Close", 1, 169 221 50 12, ok
tab "Blacklist", 17, 2 5 284 202
combo 102, 4 22 176 176, tab 17 sort size
button "&Add", 103, 186 22 30 11, tab 17
button "&Delete", 104, 220 22 30 11, tab 17
text "Reason:", 106, 186 37 23 8, tab 17
edit "", 105, 186 47 98 10, tab 17 autohs
text "Default reason:", 107, 186 65 39 8, tab 17
text "", 108, 186 75 97 8, tab 17
button "Change default reason", 110, 186 87 67 11, tab 17
text "Blacklist kick/ban count:", 114, 186 150 59 8, tab 17
text "", 115, 246 150 25 8, tab 17
text "", 112, 254 24 27 8, tab 17
check "Do not ������� list after add/del", 113, 186 167 90 10, tab 17
button "������� now", 116, 186 179 67 11, tab 17
text "Last action taken:", 117, 4 199 47 8, tab 17
text "", 118, 52 199 233 8, tab 17
text "Ban for", 121, 186 109 19 8, tab 17
edit "", 120, 206 108 22 10, tab 17
text "seconds", 122, 230 109 21 8, tab 17
check "Ignore user until ban expires", 123, 186 128 82 10, tab 17
tab "Logging", 24
box "Logging options", 2, 7 21 97 59, tab 24
check "Enable", 19, 12 30 50 10, tab 24
radio "All bans/kicks", 3, 12 43 56 10, tab 24
radio "Only my own bans/kicks", 4, 12 55 79 10, tab 24
check "Include unbans", 5, 12 67 50 10, tab 24
box "Stats", 6, 128 20 72 59, tab 24
text "Total kicks:", 7, 134 32 30 8, tab 24 right
text "Total bans:", 8, 134 43 30 8, tab 24 right
text "My kicks:", 9, 134 54 30 8, tab 24 right
text "My bans:", 10, 134 65 30 8, tab 24 right
text "", 11, 167 32 25 8, tab 24
text "", 12, 167 43 25 8, tab 24
text "", 13, 167 54 25 8, tab 24
text "", 14, 167 65 25 8, tab 24
check "Log *!*@ bans only", 33, 224 23 58 10, tab 24
button "Empty log ", 18, 224 38 50 12, tab 24
button "Reset stats", 20, 224 53 50 12, tab 24
list 15, 5 90 283 116, tab 24 sort vsbar
tab "Counters", 38
box "IP's / Masks banned", 26, 8 20 126 20, tab 38
check "Count", 22, 16 27 26 10, tab 38
check "Echo to active", 21, 45 27 46 10, tab 38
button "Reset", 23, 94 26 34 11, tab 38
box "Nicks setting bans", 29, 158 20 124 20, tab 38
check "Count", 27, 162 27 28 10, tab 38
check "Echo to active", 28, 192 27 46 10, tab 38
button "Reset", 30, 242 26 34 11, tab 38
text "Since:", 31, 52 44 25 8, tab 38 right
text "", 34, 78 44 37 8, tab 38
text "Since:", 35, 200 44 25 8, tab 38 right
text "", 36, 226 44 37 8, tab 38
list 25, 5 52 178 154, tab 38 size vsbar
list 32, 184 52 98 154, tab 38 size vsbar
button "Set channel(s)", 16, 74 221 50 12
text "", 37, 6 211 277 8
}
On *:DIALOG:blackhash:init:0: {
if (%bh.enable == 1) { did -c blackhash 19 }
if (%bh.own == 1) { did -c blackhash 4 } | else { did -c blackhash 3 }
if (%bh.ub == 1) { did -c blackhash 5 }
if (%bh.ebc == 1) { did -c blackhash 21 }
if (%bh.bc == 1) { did -c blackhash 22 | did -e blackhash 21 } | else { did -b blackhash 21 }
if (%bh.ebn == 1) { did -c blackhash 28 }
if (%bh.bn == 1) { did -c blackhash 27 | did -e blackhash 28 } | else { did -b blackhash 28 }
if (%bh.ident == 1) { did -c blackhash 33 }
if (%bl.dnr == 1) { did -c blackhash 113 } | else { did -h blackhash 116 }
if (%bl.ignore == 1) { did -c blackhash 123 }
did -a blackhash 11 %bh.tkick
did -a blackhash 12 %bh.tban
did -a blackhash 13 %bh.mkick
did -a blackhash 14 %bh.mban
did -a blackhash 34 %bh.bcdate
did -a blackhash 36 %bh.nickdate
did -a blackhash 37 Channels: %bh.chan
did -a blackhash 115 %bl.kb
did -a blackhash 120 %bl.secs
initedit
initedit2
initedit3
bl.init
did -a blackhash 108 %bl.dr
did -a blackhash 112 %bl.count
}
;================================================= ==
;============= Log and counter section =============
;================================================= ==
on *:ban:%bh.chan:{
if (%bh.bc == 1) {
bancount
}
if (%bh.bn == 1) {
bncount
}
if (%bh.own == 1) goto own
else goto all
:own
if ((%bh.enable == 1) && ($nick == $me)) {
logban
inc %bh.mban | inc %bh.tban
}
halt
:all
if (%bh.enable == 1) {
logban
inc %bh.tban
if ($nick == $me) { inc %bh.mban }
}
halt
}
on *:kick:%bh.chan:{
if (%bh.bn == 1) {
kncount
}
if (%bh.own == 1) goto own
else goto all
:own
if ((%bh.enable == 1) && ($nick == $me)) {
set %k.msg $1- | logkick
inc %bh.mkick | inc %bh.tkick
}
halt
:all
if (%bh.enable == 1) {
set %k.msg $1- | logkick
inc %bh.tkick
if ($nick == $me) { inc %bh.mkick }
}
halt
}
on *:unban:%bh.chan:{
if (%bh.own == 1) goto own
:own
if ((%bh.enable == 1) && ($nick == $me) && (%bh.ub == 1)) {
logunban
}
halt
:all
if ((%bh.enable == 1) && (%bh.ub == 1)) {
logunban
}
halt
}
on *:dialog:blackhash:sclick:3: { did -c blackhash 3 | set %bh.own 0 }
on *:dialog:blackhash:sclick:4: { did -c blackhash 4 | set %bh.own 1 }
on *:dialog:blackhash:sclick:5: {
if (%bh.ub == 0) { did -c blackhash 5 | set %bh.ub 1 }
else { did -u blackhash 5 | set %bh.ub 0 }
}
on *:dialog:blackhash:sclick:18: {
if ($?!="Empty the log and start a new one?" == $true) {
hdel -w kicklog *
did -r blackhash 15
initedit
}
}
on *:dialog:blackhash:sclick:20: {
if ($?!="Reset all stats?" == $true) {
set %bh.mban 0 | set %bh.tban 0 | set %bh.mkick 0 | set %bh.tkick 0
did -o blackhash 11 1 %bh.tkick
did -o blackhash 12 1 %bh.tban
did -o blackhash 13 1 %bh.mkick
did -o blackhash 14 1 %bh.mban
}
}
on *:dialog:blackhash:sclick:19: {
if (%bh.enable == 0) { did -c blackhash 19 | set %bh.enable 1 }
else { did -u blackhash 19 | set %bh.enable 0 }
}
on *:dialog:blackhash:sclick:21: {
if (%bh.ebc == 0) { set %bh.ebc 1 | did -c blackhash 21 }
else { set %bh.ebc 0 | did -u blackhash 21 }
}
on *:dialog:blackhash:sclick:22: {
set %bh.bc $did(22).state
if (%bh.bc == 1) { did -e blackhash 21 } | else { did -b blackhash 21 }
}
on *:dialog:blackhash:sclick:27: {
set %bh.bn $did(27).state
if (%bh.bn == 1) { did -e blackhash 28 } | else { did -b blackhash 28 }
}
on *:dialog:blackhash:sclick:28: { set %bh.ebn $did(28).state }
on *:dialog:blackhash:sclick:23: {
if ($?!="Empty the counter and start a new one?" == $true) {
set %bh.bcdate $adate
remove -b BlackHash_bancount.ini
writeini BlackHash_bancount.ini Initialize LastReset $adate
did -r blackhash 25
did -o blackhash 34 1 %bh.bcdate
}
}
on *:dialog:blackhash:sclick:30: {
if ($?!="Empty the counter and start a new one?" == $true) {
set %bh.nickdate $adate
remove -b BlackHash_nickcount.ini
writeini BlackHash_nickcount.ini Initialize LastReset $adate
did -r blackhash 32
did -o blackhash 36 1 %bh.nickdate
}
}
on *:dialog:blackhash:sclick:16: {
set %bh.chan $$?="Enter the channel(s). Seperate multiple channels by a comma (#chan1,#chan2). Enter a '#' by itself to set for all channels."
did -o blackhash 37 1 Channels: %bh.chan
}
on *:dialog:blackhash:sclick:33: { set %bh.ident $did(33).state }
alias -l logban {
hadd kicklog %bh.ref $adate $time : < $+ $chan $+ > < $+ $nick $+ > : banned : $banmask | inc %bh.ref
}
alias -l logkick {
hadd kicklog %bh.ref $adate $time < $+ $chan $+ > < $+ $nick $+ > kicked $knick - %k.msg | inc %bh.ref
unset %k.msg
}
alias -l logunban {
hadd kicklog %bh.ref $adate $time : < $+ $chan $+ > < $+ $nick $+ > : unbanned : < $+ $banmask $+ >
}
alias -l initedit {
var %y = 1
:loop
did -a blackhash 15 $hget(kicklog, %y).data
inc %y
if ($hget(kicklog, %y).item != $null) { goto loop }
else { goto end }
:end
}
alias -l initedit2 {
if ($lines(BlackHash_bancount.ini) >= 1) {
var %bh.x2 = $lines(BlackHash_bancount.ini)
var %bh.y2 = 1
while (%bh.y2 <= %bh.x2) {
did -a blackhash 25 $read(BlackHash_bancount.ini, n, %bh.y2)
inc %bh.y2
}
}
}
alias -l initedit3 {
if ($lines(BlackHash_nickcount.ini) >= 1) {
var %bh.x3 = $lines(BlackHash_nickcount.ini)
var %bh.y3 = 1
while (%bh.y3 <= %bh.x3) {
did -a blackhash 32 $read(BlackHash_nickcount.ini, n, %bh.y3)
inc %bh.y3
}
}
}
alias -l bancount {
var %bc.b = $banmask
var %bc.c = $chan
if (%bh.ident == 1) {
if ($left(%bc.b,4) != $chr(42) $+ $chr(33) $+ $chr(42) $+ $chr(64)) { halt }
}
var %bc.t = $readini(BlackHash_bancount.ini, %bc.c, %bc.b)
if (%bc.t == $null) {
set %bc.t 1
goto write
}
else {
inc %bc.t
goto write
}
:write
writeini BlackHash_bancount.ini %bc.c %bc.b %bc.t
if (%bh.ebc == 1) { echo -a 0,1 %bc.b 8has been banned0 %bc.t 8time(s) in $chan since %bh.bcdate }
}
alias -l bncount {
var %bn.n = $nick
var %bn.o = Bans
var %bn.p = $readini(BlackHash_nickcount.ini, %bn.n, %bn.o)
if (%bn.p == $null) {
var %bn.p = 1
writeini BlackHash_nickcount.ini %bn.n %bn.o %bn.p
}
else {
inc %bn.p
writeini BlackHash_nickcount.ini %bn.n %bn.o %bn.p
}
if (%bh.ebn == 1) { echo -a 0,1 %bn.n 8has banned0 %bn.p 8since %bh.nickdate }
}
alias -l kncount {
var %kn.q = $nick
var %kn.r = Kicks
var %kn.s = $readini(BlackHash_nickcount.ini, %kn.q, %kn.r)
if ((%kn.s == $null) && (%kn.q == $null)) {
write BlackHash_nickcount.ini -
}
if (%kn.s == $null) {
var %kn.s = 1
goto writenick2
}
else {
inc %kn.s
goto writenick2
}
:writenick2
writeini BlackHash_nickcount.ini %kn.q %kn.r %kn.s
if (%bh.ebn == 1) { echo -a 0,1 %kn.q 8has kicked0 %kn.s 8since %bh.nickdate }
}
;================================================= ==
;================ Blacklist section ================
;================================================= ==
on *:dialog:blackhash:sclick:103: {
if ($did(blackhash,105,0) != $null) { var %bl.r = $did(blackhash,105,0).text } | else { var %bl.r = %bl.dr }
var %bl.a = $did(blackhash,102,0).text
if (%bl.a == $null) { halt }
hadd -s blacklist %bl.a %bl.r
echo -a 4***1 %bl.a 4Added to 1Blacklist
var %bl.act = Added: %bl.a
did -o blackhash 118 1 %bl.act
did -r blackhash 105 0
bl.list
}
on *:dialog:blackhash:sclick:104: {
var %bl.a = $did(blackhash,102,32).seltext
var %bl.aa = $gettok(%bl.a,1,32)
hdel -s blacklist %bl.aa
echo -a 4***1 %bl.aa 4Removed from 1Blacklist
var %bl.act = Removed: %bl.aa
did -o blackhash 118 1 %bl.act
bl.list
}
on *:dialog:blackhash:sclick:110: {
set %bl.dr $$?="Enter default reason"
did -o blackhash 108 1 %bl.dr
}
on *:dialog:blackhash:sclick:113: {
if (%bl.dnr == 0) { set %bl.dnr 1 | did -v blackhash 116 } | else { set %bl.dnr 0 | did -h blackhash 116 }
}
on *:dialog:blackhash:sclick:116: {
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
on *:dialog:blackhash:edit:120: {
set %bl.secs $did(blackhash,120)
}
on *:dialog:blackhash:sclick:123: {
set %bl.ignore $did(123).state
}
alias -l bl.init {
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
alias -l bl.list {
if (%bl.dnr == 1) { goto end }
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
;end of script
إنشاء الله عيوني تعجبكم
يللا حبايبي
نشوفكم
هذي نوع من انواع الblacklist ومفيده كتيييييييير خاصه للصهاينه :P ...
أول شي نزل ال read me :
;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BlackHash v1.0 [Naz] ;;
;;;;;;;;;;;;;;;;;;;;;;;;;; this script is formerly known as KBL v3.0
================================================== ================================================
BlackHash v1.0 is the first (to my knowledge) to use a hash table exclusively to store blacklisted
address' instead of using the userlist. The benefit of this is can be significant, especially to
those who maintain large blacklists in large channels. It works in the same manner, the
difference being that it compares a joining users address to the hash table rather than the
userlist. This can drastically decrease mIRC's "hang time" if not remove it all together
when there is a mass join such as after a netsplit.
Reason for the name change: this script was used exclusivly for my own use for months, it didn't
really matter what the name was. Having publicly release it however, as an after thought KBL
sounds kind of dumb to me. Hence the name change.
Unload KBL prior to installing this script.
Unzip the script into your mIRC folder.
To load type --> /load -rs blackhash_1-0.mrc <--
To open the blacklist dialog select BlackHash in the channel or menubar and click BlackHash
-> Settings.
1. Blacklist
Window - This is the window that displays the blacklisted entries. Each address is listed in a
sorted order, not the order in which the were added. The address is followed by the reason,
this is the kick message that will be displayed.
Add button - enter the address you wish to ban in the top of the combo window at left. Type in
the reason in the edit box if you wish to use a reason other than the default. *DO NOT type
a reason in the combo box with the address.
Delete button - select the address in the combo box you wish to remove, click delete or press
alt+D (The address MUST be selected, not simply typed in.)
Number in upper right - Displays the number of entries in the blacklist.
Reason - this is where you'll enter the reason if you want it to be different than the default.
Default reason - this is the reason that will be added to each entry unless you add a different
one above. Simplifies making multiple entries and can be changed.
Ban seconds - enter the number of seconds you want to wait before the address is automatically
unbanned. Helps to keep the banlist from filling up.
Ignore banned user - Will ignore a user that has been banned for the duration of the ban.
Blacklist count - the number of times the script has banned/kicked a blacklisted user.
Do not ������� - this is useful when you make several entries or removals and don't want to
wait for the list to ������� each time. Keep in mind that the list will not update when this
option is selected until you either click the ������� now button or close and reopen the
dialog.
Last Action - displays the last address to be added or deleted.
Set channels - enter the channels you want this script to monitor. This will apply to all
functions of the script. If entering more than one channel seperate them by a comma
(no space). i.e.: #channel1,#channel2 . To set to all channel you are in enter a # by itself.
The BlackHash menu in the nicklist will add directly from there without opening the dialog window
using a preset reason or entering one of your own. It will also ban/kick the user from the channel
using the *!*@host mask.
The BlackHash menu in the query window will kick/ban the user from any common channel you op in
and add to the blacklist. If not in a common channel it will not add to the blacklist at this
time. Will in a future update.
2. Logging
Enable - enables or disables kick/ban logging.
All - Logs all kicks/bans regardless who performs them.
Only my own - Only logs kicks/bans performed by you.
Log unbans - Logs unbans according to all or own set above.
Log *!*@ bans only - This will make the script log only bans that have a wildcard nick!ident.
(this was added for reasons of my own and is not useful to everybody)
Empty log - deletes the kick/ban log
Reset stats - sets stats to zero.
3. Counters
The window on the left when enabled, will count how many times an address has been banned.
The window on the right counts the number of kicks/bans performed by each op.
Echo - will echo those stats to the active window each time the event occurrs.
Troubleshooting:
The script will not blacklist or log from any channel that is not set with the set channels button.
Futher, if you put a space after the comma when entering multiple channels it will not work.
(Correct: #channel1,#channel2 Incorrect: #channel1, #channel2 )
Contact info: [email protected] | http://home.twcny.rr.com/blackhash/
__________________________________________________ __________________________________________________ __________________________________________________ ________________________
وهذي ال addon الي تحطها في الريموت :
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; BlackHash© v1.0 by [Naz] ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
on @*:join:%bh.chan:{
var %bl.taddress = $address($nick,5)
if $hmatch(blacklist, %bl.taddress, 1) {
var %bl.addr = $hmatch(blacklist, %bl.taddress, 1)
var %bl.reason = $hget(blacklist, %bl.addr)
echo $chan 4,1 Blacklisted user, kickbanning...
if ($nick isop $chan) { echo -a 8,1 Blacklisted user is an OP on $chan. Halting action. | halt }
else {
kick $chan $nick %bl.reason | ban -u $+ %bl.secs $chan %bl.addr | inc %bl.kb 1
if (%bl.ignore == 1) { .ignore -u $+ %bl.secs %bl.addr }
}
}
}
on 1:load: {
unset %kbl.* | unset %sl.*
writeini BlackHash_bancount.ini Initialize LastReset $adate
writeini BlackHash_nickcount.ini Initialize LastReset $adate
set %bh.chan CHANNELS NOT SET!
set %bh.enable 0
set %bh.bc 0
set %bh.mban 0
set %bh.tban 0
set %bh.mkick 0
set %bh.tkick 0
set %bl.secs 300
set %bh.bcdate $adate
set %bh.nickdate $adate
set %bl.dr Blacklisted
set %bl.kb 0
set %bh.ref 1
set %bl.dnr 0
}
on 1:start: {
hmake -s blacklist 200 | hload -s blacklist blacklist.hsh
hmake -s kicklog 100 | hload -s kicklog kicklog.hsh
.timerBH.backup 0 1800 { hsave -os blacklist blacklist.hsh }
echo 10,1 BlackHash has been loaded.
}
on 1:exit: {
hsave -os blacklist blacklist.hsh | hsave -os kicklog kicklog.hsh | timerBH.backup off
}
;================================================= ==
;============= Menu and Dialog section =============
;================================================= ==
menu channel {
-
BlackHash
.Settings:dialog -m blackhash blackhash
.-
.Add IP to Blacklist: {
var %a = $$?"Enter address to add"
var %b = $$?"Enter reason"
hadd -s blacklist %a %b
echo -a 4***1 %a 4Added to 1Blacklist
}
}
menu menubar {
-
BlackHash
.Settings:dialog -m blackhash blackhash
.-
.Unload {
if ($?!="Do you want to UNLOAD BlackHash?" == $true) {
unset %bh.* | unset %bl.* | hfree -s blacklist | hfree -s kicklog
timerBH* off | unload -rs BlackHash*
}
}
}
menu nicklist {
-
BlackHash
.Spam drone: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = spam
hadd -s blacklist %a spam drone associated with this address [m]
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 spam
}
}
.Infected drone: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = infected ip/hostmask
hadd -s blacklist %a trojan or virus advertising drone associated with this address [m]
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 trojan or virus advertising
}
}
.-
.Enter reason: {
if ($$1 isop $chan) { echo -a 8,1 $$1 is an OP on $chan $+ , action halted. | halt }
else {
var %a = $address($$1,2)
var %b = $$?"Enter reason"
hadd -s blacklist %a %b
echo -a 4***1 %a 4Added to 1Blacklist
ban -u $+ %bl.secs $chan %a | kick $chan $$1 %b
}
}
}
menu query {
BlackHash
.Add to blacklist {
var %a = $$1
var %b = $comchan(%a,0)
var %c = $address(%a,2)
var %n = 1
while %n <= %b {
if $comchan(%a,%n).op {
ban -u $+ %bl.secs $comchan(%a,%n) %c
kick $comchan(%a,%n) $$1 spam drone associated with this address [m]
}
inc %n
}
if (%b == 0) { echo -d 12 BlackHash notice: %a is not in any common channel with you. }
if (%c != $null) {
hadd -s blacklist %c spam drone associated with this address [m]
}
}
}
dialog -l blackhash {
title "BlackHash v1.0"
size -1 -1 293 236
option dbu
button "Close", 1, 169 221 50 12, ok
tab "Blacklist", 17, 2 5 284 202
combo 102, 4 22 176 176, tab 17 sort size
button "&Add", 103, 186 22 30 11, tab 17
button "&Delete", 104, 220 22 30 11, tab 17
text "Reason:", 106, 186 37 23 8, tab 17
edit "", 105, 186 47 98 10, tab 17 autohs
text "Default reason:", 107, 186 65 39 8, tab 17
text "", 108, 186 75 97 8, tab 17
button "Change default reason", 110, 186 87 67 11, tab 17
text "Blacklist kick/ban count:", 114, 186 150 59 8, tab 17
text "", 115, 246 150 25 8, tab 17
text "", 112, 254 24 27 8, tab 17
check "Do not ������� list after add/del", 113, 186 167 90 10, tab 17
button "������� now", 116, 186 179 67 11, tab 17
text "Last action taken:", 117, 4 199 47 8, tab 17
text "", 118, 52 199 233 8, tab 17
text "Ban for", 121, 186 109 19 8, tab 17
edit "", 120, 206 108 22 10, tab 17
text "seconds", 122, 230 109 21 8, tab 17
check "Ignore user until ban expires", 123, 186 128 82 10, tab 17
tab "Logging", 24
box "Logging options", 2, 7 21 97 59, tab 24
check "Enable", 19, 12 30 50 10, tab 24
radio "All bans/kicks", 3, 12 43 56 10, tab 24
radio "Only my own bans/kicks", 4, 12 55 79 10, tab 24
check "Include unbans", 5, 12 67 50 10, tab 24
box "Stats", 6, 128 20 72 59, tab 24
text "Total kicks:", 7, 134 32 30 8, tab 24 right
text "Total bans:", 8, 134 43 30 8, tab 24 right
text "My kicks:", 9, 134 54 30 8, tab 24 right
text "My bans:", 10, 134 65 30 8, tab 24 right
text "", 11, 167 32 25 8, tab 24
text "", 12, 167 43 25 8, tab 24
text "", 13, 167 54 25 8, tab 24
text "", 14, 167 65 25 8, tab 24
check "Log *!*@ bans only", 33, 224 23 58 10, tab 24
button "Empty log ", 18, 224 38 50 12, tab 24
button "Reset stats", 20, 224 53 50 12, tab 24
list 15, 5 90 283 116, tab 24 sort vsbar
tab "Counters", 38
box "IP's / Masks banned", 26, 8 20 126 20, tab 38
check "Count", 22, 16 27 26 10, tab 38
check "Echo to active", 21, 45 27 46 10, tab 38
button "Reset", 23, 94 26 34 11, tab 38
box "Nicks setting bans", 29, 158 20 124 20, tab 38
check "Count", 27, 162 27 28 10, tab 38
check "Echo to active", 28, 192 27 46 10, tab 38
button "Reset", 30, 242 26 34 11, tab 38
text "Since:", 31, 52 44 25 8, tab 38 right
text "", 34, 78 44 37 8, tab 38
text "Since:", 35, 200 44 25 8, tab 38 right
text "", 36, 226 44 37 8, tab 38
list 25, 5 52 178 154, tab 38 size vsbar
list 32, 184 52 98 154, tab 38 size vsbar
button "Set channel(s)", 16, 74 221 50 12
text "", 37, 6 211 277 8
}
On *:DIALOG:blackhash:init:0: {
if (%bh.enable == 1) { did -c blackhash 19 }
if (%bh.own == 1) { did -c blackhash 4 } | else { did -c blackhash 3 }
if (%bh.ub == 1) { did -c blackhash 5 }
if (%bh.ebc == 1) { did -c blackhash 21 }
if (%bh.bc == 1) { did -c blackhash 22 | did -e blackhash 21 } | else { did -b blackhash 21 }
if (%bh.ebn == 1) { did -c blackhash 28 }
if (%bh.bn == 1) { did -c blackhash 27 | did -e blackhash 28 } | else { did -b blackhash 28 }
if (%bh.ident == 1) { did -c blackhash 33 }
if (%bl.dnr == 1) { did -c blackhash 113 } | else { did -h blackhash 116 }
if (%bl.ignore == 1) { did -c blackhash 123 }
did -a blackhash 11 %bh.tkick
did -a blackhash 12 %bh.tban
did -a blackhash 13 %bh.mkick
did -a blackhash 14 %bh.mban
did -a blackhash 34 %bh.bcdate
did -a blackhash 36 %bh.nickdate
did -a blackhash 37 Channels: %bh.chan
did -a blackhash 115 %bl.kb
did -a blackhash 120 %bl.secs
initedit
initedit2
initedit3
bl.init
did -a blackhash 108 %bl.dr
did -a blackhash 112 %bl.count
}
;================================================= ==
;============= Log and counter section =============
;================================================= ==
on *:ban:%bh.chan:{
if (%bh.bc == 1) {
bancount
}
if (%bh.bn == 1) {
bncount
}
if (%bh.own == 1) goto own
else goto all
:own
if ((%bh.enable == 1) && ($nick == $me)) {
logban
inc %bh.mban | inc %bh.tban
}
halt
:all
if (%bh.enable == 1) {
logban
inc %bh.tban
if ($nick == $me) { inc %bh.mban }
}
halt
}
on *:kick:%bh.chan:{
if (%bh.bn == 1) {
kncount
}
if (%bh.own == 1) goto own
else goto all
:own
if ((%bh.enable == 1) && ($nick == $me)) {
set %k.msg $1- | logkick
inc %bh.mkick | inc %bh.tkick
}
halt
:all
if (%bh.enable == 1) {
set %k.msg $1- | logkick
inc %bh.tkick
if ($nick == $me) { inc %bh.mkick }
}
halt
}
on *:unban:%bh.chan:{
if (%bh.own == 1) goto own
:own
if ((%bh.enable == 1) && ($nick == $me) && (%bh.ub == 1)) {
logunban
}
halt
:all
if ((%bh.enable == 1) && (%bh.ub == 1)) {
logunban
}
halt
}
on *:dialog:blackhash:sclick:3: { did -c blackhash 3 | set %bh.own 0 }
on *:dialog:blackhash:sclick:4: { did -c blackhash 4 | set %bh.own 1 }
on *:dialog:blackhash:sclick:5: {
if (%bh.ub == 0) { did -c blackhash 5 | set %bh.ub 1 }
else { did -u blackhash 5 | set %bh.ub 0 }
}
on *:dialog:blackhash:sclick:18: {
if ($?!="Empty the log and start a new one?" == $true) {
hdel -w kicklog *
did -r blackhash 15
initedit
}
}
on *:dialog:blackhash:sclick:20: {
if ($?!="Reset all stats?" == $true) {
set %bh.mban 0 | set %bh.tban 0 | set %bh.mkick 0 | set %bh.tkick 0
did -o blackhash 11 1 %bh.tkick
did -o blackhash 12 1 %bh.tban
did -o blackhash 13 1 %bh.mkick
did -o blackhash 14 1 %bh.mban
}
}
on *:dialog:blackhash:sclick:19: {
if (%bh.enable == 0) { did -c blackhash 19 | set %bh.enable 1 }
else { did -u blackhash 19 | set %bh.enable 0 }
}
on *:dialog:blackhash:sclick:21: {
if (%bh.ebc == 0) { set %bh.ebc 1 | did -c blackhash 21 }
else { set %bh.ebc 0 | did -u blackhash 21 }
}
on *:dialog:blackhash:sclick:22: {
set %bh.bc $did(22).state
if (%bh.bc == 1) { did -e blackhash 21 } | else { did -b blackhash 21 }
}
on *:dialog:blackhash:sclick:27: {
set %bh.bn $did(27).state
if (%bh.bn == 1) { did -e blackhash 28 } | else { did -b blackhash 28 }
}
on *:dialog:blackhash:sclick:28: { set %bh.ebn $did(28).state }
on *:dialog:blackhash:sclick:23: {
if ($?!="Empty the counter and start a new one?" == $true) {
set %bh.bcdate $adate
remove -b BlackHash_bancount.ini
writeini BlackHash_bancount.ini Initialize LastReset $adate
did -r blackhash 25
did -o blackhash 34 1 %bh.bcdate
}
}
on *:dialog:blackhash:sclick:30: {
if ($?!="Empty the counter and start a new one?" == $true) {
set %bh.nickdate $adate
remove -b BlackHash_nickcount.ini
writeini BlackHash_nickcount.ini Initialize LastReset $adate
did -r blackhash 32
did -o blackhash 36 1 %bh.nickdate
}
}
on *:dialog:blackhash:sclick:16: {
set %bh.chan $$?="Enter the channel(s). Seperate multiple channels by a comma (#chan1,#chan2). Enter a '#' by itself to set for all channels."
did -o blackhash 37 1 Channels: %bh.chan
}
on *:dialog:blackhash:sclick:33: { set %bh.ident $did(33).state }
alias -l logban {
hadd kicklog %bh.ref $adate $time : < $+ $chan $+ > < $+ $nick $+ > : banned : $banmask | inc %bh.ref
}
alias -l logkick {
hadd kicklog %bh.ref $adate $time < $+ $chan $+ > < $+ $nick $+ > kicked $knick - %k.msg | inc %bh.ref
unset %k.msg
}
alias -l logunban {
hadd kicklog %bh.ref $adate $time : < $+ $chan $+ > < $+ $nick $+ > : unbanned : < $+ $banmask $+ >
}
alias -l initedit {
var %y = 1
:loop
did -a blackhash 15 $hget(kicklog, %y).data
inc %y
if ($hget(kicklog, %y).item != $null) { goto loop }
else { goto end }
:end
}
alias -l initedit2 {
if ($lines(BlackHash_bancount.ini) >= 1) {
var %bh.x2 = $lines(BlackHash_bancount.ini)
var %bh.y2 = 1
while (%bh.y2 <= %bh.x2) {
did -a blackhash 25 $read(BlackHash_bancount.ini, n, %bh.y2)
inc %bh.y2
}
}
}
alias -l initedit3 {
if ($lines(BlackHash_nickcount.ini) >= 1) {
var %bh.x3 = $lines(BlackHash_nickcount.ini)
var %bh.y3 = 1
while (%bh.y3 <= %bh.x3) {
did -a blackhash 32 $read(BlackHash_nickcount.ini, n, %bh.y3)
inc %bh.y3
}
}
}
alias -l bancount {
var %bc.b = $banmask
var %bc.c = $chan
if (%bh.ident == 1) {
if ($left(%bc.b,4) != $chr(42) $+ $chr(33) $+ $chr(42) $+ $chr(64)) { halt }
}
var %bc.t = $readini(BlackHash_bancount.ini, %bc.c, %bc.b)
if (%bc.t == $null) {
set %bc.t 1
goto write
}
else {
inc %bc.t
goto write
}
:write
writeini BlackHash_bancount.ini %bc.c %bc.b %bc.t
if (%bh.ebc == 1) { echo -a 0,1 %bc.b 8has been banned0 %bc.t 8time(s) in $chan since %bh.bcdate }
}
alias -l bncount {
var %bn.n = $nick
var %bn.o = Bans
var %bn.p = $readini(BlackHash_nickcount.ini, %bn.n, %bn.o)
if (%bn.p == $null) {
var %bn.p = 1
writeini BlackHash_nickcount.ini %bn.n %bn.o %bn.p
}
else {
inc %bn.p
writeini BlackHash_nickcount.ini %bn.n %bn.o %bn.p
}
if (%bh.ebn == 1) { echo -a 0,1 %bn.n 8has banned0 %bn.p 8since %bh.nickdate }
}
alias -l kncount {
var %kn.q = $nick
var %kn.r = Kicks
var %kn.s = $readini(BlackHash_nickcount.ini, %kn.q, %kn.r)
if ((%kn.s == $null) && (%kn.q == $null)) {
write BlackHash_nickcount.ini -
}
if (%kn.s == $null) {
var %kn.s = 1
goto writenick2
}
else {
inc %kn.s
goto writenick2
}
:writenick2
writeini BlackHash_nickcount.ini %kn.q %kn.r %kn.s
if (%bh.ebn == 1) { echo -a 0,1 %kn.q 8has kicked0 %kn.s 8since %bh.nickdate }
}
;================================================= ==
;================ Blacklist section ================
;================================================= ==
on *:dialog:blackhash:sclick:103: {
if ($did(blackhash,105,0) != $null) { var %bl.r = $did(blackhash,105,0).text } | else { var %bl.r = %bl.dr }
var %bl.a = $did(blackhash,102,0).text
if (%bl.a == $null) { halt }
hadd -s blacklist %bl.a %bl.r
echo -a 4***1 %bl.a 4Added to 1Blacklist
var %bl.act = Added: %bl.a
did -o blackhash 118 1 %bl.act
did -r blackhash 105 0
bl.list
}
on *:dialog:blackhash:sclick:104: {
var %bl.a = $did(blackhash,102,32).seltext
var %bl.aa = $gettok(%bl.a,1,32)
hdel -s blacklist %bl.aa
echo -a 4***1 %bl.aa 4Removed from 1Blacklist
var %bl.act = Removed: %bl.aa
did -o blackhash 118 1 %bl.act
bl.list
}
on *:dialog:blackhash:sclick:110: {
set %bl.dr $$?="Enter default reason"
did -o blackhash 108 1 %bl.dr
}
on *:dialog:blackhash:sclick:113: {
if (%bl.dnr == 0) { set %bl.dnr 1 | did -v blackhash 116 } | else { set %bl.dnr 0 | did -h blackhash 116 }
}
on *:dialog:blackhash:sclick:116: {
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
on *:dialog:blackhash:edit:120: {
set %bl.secs $did(blackhash,120)
}
on *:dialog:blackhash:sclick:123: {
set %bl.ignore $did(123).state
}
alias -l bl.init {
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
alias -l bl.list {
if (%bl.dnr == 1) { goto end }
set %bl.count 0
did -r blackhash 102
var %x = 1
while ($hget(blacklist, %x).item != $null) {
did -a blackhash 102 $hget(blacklist, %x).item $hget(blacklist, %x).data
inc %x | inc %bl.count
}
did -o blackhash 112 1 %bl.count
}
;end of script
إنشاء الله عيوني تعجبكم
يللا حبايبي
نشوفكم
تعليق