Rev 70 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#!/usr/bin/env fail2ban-python# Inspired by https://isc.sans.edu/forums/diary/When+Google+isnt+Google/15968/## Written in Python to reuse built-in Python batteries and not depend on# presence of host and cut commands#import sysdef process_args(argv):if len(argv) != 2:sys.stderr.write("Please provide a single IP as an argument. Got: %s\n"% (argv[1:]))sys.exit(2)ip = argv[1]from fail2ban.server.filter import DNSUtilsif not DNSUtils.isValidIP(ip):sys.stderr.write("Argument must be a single valid IP. Got: %s\n"% ip)sys.exit(3)return ipdef is_googlebot(ip):import refrom fail2ban.server.filter import DNSUtilshost = DNSUtils.ipToName(ip)if not host or not re.match('.*\.google(bot)?\.com$', host):sys.exit(1)host_ips = DNSUtils.dnsToIp(host)sys.exit(0 if ip in host_ips else 1)if __name__ == '__main__':is_googlebot(process_args(sys.argv))