#!/bin/bash
# ein kleines script zur abfrage nach wildcard Domain
# von Andreas Winkelmann aus der Postfixliste ml@awinkelmann.de
# schön strukturiert Andreas habs aber nicht begriffen was es da macht *gg
# noch einen Cronjob dazu damit das ergebniss immer aktuell bleibt
# eingebunden unter den smtpd_recipient_restriction mit 
#
#        check_sender_mx_access hash:/etc/postfix/maps/wildcard_mx,
#
# und ein paar weniger spamer kommen durch 
# bitte passt es evtl. auf eure bedürfnisse an.
# Verbesserungsvorschläge nehme ich gerne entgegen unter driessen@fblan.de
# unter fblan.de/postfix sammle ich diese kleinen tools und stelle sie auch zum download bereit 
# viel spaß damit
# 


curl -s ftp://ftp.internic.net/domain/root.zone.gz | \
gunzip -c | \
awk ' / NS / {if (length($1) > 1) print "_."$1}' | \
sort -u | \
#Zum sort:
#sort -b -t. -k1,1n -k2,2n -k3,3n -k4,4n| \

#sortiert IP-V4 Adressen numerisch nach 1., 2., 3. und 4. Zahl


dig -f - +noall +answer | \
awk ' $5 ~ /[0-9]+\.[0-9]+\./ {
	      	gsub("_.","",$1);
		print $5"	REJECT IP address of MX host is a wild-card "$1
      }' | \
sort -g | \
awk '   BEGIN{
        oline=""; }
        {
	if (NR>1) {
	   if( length(oline) > 0) {
	      split(oline,arr);
	        if ($1==arr[1]) {
		        oline=oline"&"$11;
		}
		else {
		      print oline;
		      oline=$0;
		     }
		}
		else {
		      oline=$0;
		     }
		}
		else {
		oline=$0;
		     }
		}
END{ print oline;}'>/etc/postfix/maps/wildcard_mx

postmap /etc/postfix/maps/wildcard_mx
/etc/init.d/postfix reload
