Skip to content

Instantly share code, notes, and snippets.

@bitbybit
Created June 10, 2013 12:22
Show Gist options
  • Save bitbybit/5748339 to your computer and use it in GitHub Desktop.
Save bitbybit/5748339 to your computer and use it in GitHub Desktop.
DNSBL IP checking
<?
$email = 'your@email';
$dnsbl_check = array(
"bl.spamcop.net",
"list.dsbl.org",
"sbl.spamhaus.org",
"xbl.spamhaus.org",
"cbl.abuseat.org",
"zen.spamhaus.org",
"dnsbl.sorbs.net",
"http.dnsbl.sorbs.net",
"socks.dnsbl.sorbs.net",
"misc.dnsbl.sorbs.net",
"smtp.dnsbl.sorbs.net",
"web.dnsbl.sorbs.net",
"spam.dnsbl.sorbs.net",
"dul.dnsbl.sorbs.net",
"combined.njabl.org",
"dnsbl.njabl.org",
"dnsbl.ahbl.org",
"cbl.anti-spam.org.cn",
"relays.mail-abuse.org",
"spam.abuse.ch",
"db.wpbl.info",
"bl.spamcannibal.org",
"dnsbl-1.uceprotect.net",
"spam.spamrats.com",
"dyna.spamrats.com",
"ips.backscatterer.org",
"webmail.rhs.mailpolice.com",
"dnsbl.tornevall.org",
"bogons.cymru.com",
"bl.emailbasura.org",
"b.barracudacentral.org",
"bl.deadbeef.com",
"blackholes.five-ten-sg.com",
"blacklist.woody.ch",
"combined.rbl.msrbl.net",
"combined.abuse.ch",
"dnsbl-2.uceprotect.net",
"dnsbl-3.uceprotect.net",
"dnsbl.inps.de",
"drone.abuse.ch",
"cdl.anti-spam.org.cn",
"dul.ru",
"duinv.aupads.org",
"dynip.rothen.com",
"dnsbl.cyberlogic.net",
"ix.dnsbl.manitu.net",
"ohps.dnsbl.net.au",
"omrs.dnsbl.net.au",
"osps.dnsbl.net.au",
"noptr.spamrats.com",
"osrs.dnsbl.net.au",
"owfs.dnsbl.net.au",
"owps.dnsbl.net.au",
"orvedb.aupads.org",
"pbl.spamhaus.org",
"phishing.rbl.msrbl.net",
"proxy.block.transip.nl",
"proxy.bl.gweep.ca",
"psbl.surriel.com",
"rdts.dnsbl.net.au",
"rbl.interserver.net",
"images.rbl.msrbl.net",
"relays.bl.gweep.ca",
"relays.nether.net",
"relays.bl.kundenserver.de",
"residential.block.transip.nl",
"ricn.dnsbl.net.au",
"rmst.dnsbl.net.au",
"korea.services.net",
"spam.rbl.msrbl.net",
"spamrbl.imp.ch",
"t3direct.dnsbl.net.au",
"short.rbl.jp",
"tor.ahbl.org",
"tor.dnsbl.sectoor.de",
"probes.dnsbl.net.au",
"ubl.lashback.com",
"torserver.tor.dnsbl.sectoor.de",
"virbl.bit.nl",
"spamlist.or.kr",
"ubl.unsubscore.com",
"virus.rbl.msrbl.net",
"wormrbl.imp.ch",
"zombie.dnsbl.sorbs.net",
"virus.rbl.jp"
);
set_time_limit(0);
/*if(!isset($_GET['l'])) {
$i = 0;
}
else {
$i = (int)$_GET['l'];
}*/
$ips = file('ips.txt'); /* ip to check */
/*if($i >= count($ips)) {
die();
}
if(isset($ips[$i])) {
$curip = trim($ips[$i]);
}
if(!isset($curip) || empty($curip)) {
die();
}*/
function check_dnsbl($ip) {
global $dnsbl_check;
if($ip && preg_match('/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/',$ip)) {
$towr = array();
$rip = implode('.',array_reverse(explode(".",$ip)));
foreach($dnsbl_check as $val) {
if(checkdnsrr($rip.'.'.$val.'.','A')) {
if(checkdnsrr($rip.'.'.$val.'.','TXT')) {
$dnsr = dns_get_record($rip.'.'.$val,DNS_TXT);
$towr[] = $val.' :: '.$rip.'.'.$val."\n".'Comment: '.$dnsr[0]['entries'][0]."\n\n";
}
else {
$towr[] = $val.' :: '.$rip.'.'.$val;
}
}
}
return $towr;
}
return false;
}
$banned_out = '';
foreach($ips as $curip) {
$curip = trim($curip);
$banned = $curip."\n\n";
$checkip = check_dnsbl($curip);
if($checkip && count($checkip) > 0) {
foreach($checkip as $val) {
$banned .= $val;
}
if(!empty($banned) && !empty($curip)) {
$banned_out .= $banned."\n\n\n";
}
}
sleep(1);
}
$from = "dnsbl@".str_replace("www.","",$_SERVER[HTTP_HOST]);
$header = "MIME-Version: 1.0\n";
$header .= "From: ".$from." <".$from.">\n";
$header .= "Reply-To: ".$from." <".$from.">\n";
$header .= "Content-Type: text/plain; charset=UTF-8\n";
$header .= "X-Mailer: PHP/" . phpversion();
mail($email,"=?UTF-8?B?".base64_encode("IP in blacklist")."?=",$banned_out,$header);
/*if(isset($i)) {
sleep(3);
header('Location: check.php?l='.((int)$i+1));
exit();
}*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment