Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/tclsh
- ###########################
- # Advanced DNSBL Checker #
- ###########################
- # By Velimir Majstorov #
- ###########################
- package require dns
- package require http
- set listed 0
- proc color {foreground text} {
- # tput is a little Unix utility that lets you use the termcap database
- # *much* more easily...
- return [exec tput setaf $foreground]$text[exec tput sgr0]
- }
- #Get IP from hostname
- proc GetIP {hostname} {
- set lines [split [exec nslookup $hostname 2>1] \n]
- set response [lindex $lines 5]
- regexp -- {([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})} $response null a b c d
- if {[info exist a]} {
- return "$a.$b.$c.$d"
- } else {
- puts "► [color 3 Cannot] [color 3 lookup] [color 9 $hostname]";
- exit
- }
- }
- #Process arguments
- if {$argv != ""} {
- if {[regexp {([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})} $argv]} {
- set ip [lindex $argv 0]
- set what [color 3 [lindex $argv 0]]
- } else {
- set ip [GetIP [lindex $argv 0]]
- set what "[color 3 [lindex $argv 0]] ([color 3 $ip])"
- }
- #Scan IP Procedure
- proc ScanIP {ip} {
- global argv listed what
- set startmsg "Scanning $what"; puts "⚡︎ [color 2 $startmsg]"
- #Cheeki Breeki
- regexp -- {([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})} $ip null a b c d
- set checksite [list "all.s5h.net" "b.barracudacentral.org" "bl.emailbasura.org" "bl.spamcannibal.org" "bl.spamcop.net" "blacklist.woody.ch" "bogons.cymru.com" "cbl.abuseat.org" "cdl.anti-spam.org.cn" "combined.abuse.ch" "db.wpbl.info" "dnsbl-1.uceprotect.net" "dnsbl-2.uceprotect.net" "dnsbl-3.uceprotect.net" "dnsbl.anticaptcha.net" "dnsbl.cyberlogic.net" "dnsbl.dronebl.org" "dnsbl.inps.de" "dnsbl.sorbs.net" "drone.abuse.ch" "drone.abuse.ch" "duinv.aupads.org" "dul.dnsbl.sorbs.net" "dyna.spamrats.com" "dynip.rothen.com" "exitnodes.tor.dnsbl.sectoor.de" "http.dnsbl.sorbs.net" "ips.backscatterer.org" "ix.dnsbl.manitu.net" "korea.services.net" "misc.dnsbl.sorbs.net" "noptr.spamrats.com" "orvedb.aupads.org" "pbl.spamhaus.org" "proxy.bl.gweep.ca" "psbl.surriel.com" "relays.bl.gweep.ca" "relays.nether.net" "sbl.spamhaus.org" "short.rbl.jp" "singular.ttk.pte.hu" "smtp.dnsbl.sorbs.net" "socks.dnsbl.sorbs.net" "spam.abuse.ch" "spam.dnsbl.sorbs.net" "spam.spamrats.com" "spambot.bls.digibase.ca" "spamrbl.imp.ch" "spamsources.fabel.dk" "ubl.lashback.com" "ubl.unsubscore.com" "virus.rbl.jp" "web.dnsbl.sorbs.net" "wormrbl.imp.ch" "xbl.spamhaus.org" "z.mailspike.net" "zen.spamhaus.org" "zombie.dnsbl.sorbs.net"]
- foreach dnsbl $checksite {
- set check4bl [dns::resolve $d.$c.$b.$a.$dnsbl]
- if {[dns::status $check4bl] == "ok"} {
- set listed [expr $listed+1]
- puts "► [color 9 Listed] [color 10 @] [color 6 $dnsbl]"
- }
- dns::cleanup $check4bl
- }
- #VPN ?
- proc getIPIntel {ip} {
- global listed
- set url "http://check.getipintel.net/check.php?ip=$ip&contact=admin@dbase.in.rs&flags=m"
- set logo [color 6 check.getipintel.net]
- set token [ ::http::geturl $url ]
- if {[::http::status $token] == "ok"} {
- set page [ ::http::data $token ]
- set ajdedagamerimo [regexp -all -inline {\d+} $page]
- if {$ajdedagamerimo == 1} { puts "► [color 9 Listed] [color 10 @] $logo"; set listed [expr $listed+1] }
- } else {
- puts "► Something went wrong" [::http::status $token]
- }
- http::cleanup $token
- }
- #Check for last IP
- if {[lindex $argv 1] == ""} {
- getIPIntel $ip
- }
- #Prints Listed Count
- set ukupno [expr [llength $checksite]+1]
- set ukprint "$listed / $ukupno"
- puts "▶︎ [color 9 Listed] [color 9 on] [color 3 $ukprint] ◀"
- }
- ScanIP $ip
- } else {
- set errormsg "Define IP address or hostname as argument."; puts "▶︎ [color 2 $errormsg]"
- exit
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement