Skip to content

Instantly share code, notes, and snippets.

@jogaco
Created October 24, 2015 12:09
Show Gist options
  • Save jogaco/3b2c163e3d3ea3fc4a53 to your computer and use it in GitHub Desktop.
Save jogaco/3b2c163e3d3ea3fc4a53 to your computer and use it in GitHub Desktop.
Alternative for fail2ban fake gooblebot detection when getting the error ImportError: No module named fail2ban.server.filter
#!/usr/bin/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 sys
import socket
def 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]
try:
socket.inet_aton(ip)
# legal
except socket.error:
sys.stderr.write("Argument must be a single valid IP. Got: %s\n"
% ip)
sys.exit(3)
return ip
def is_googlebot(ip):
import re
host_res = socket.gethostbyaddr(ip)
if host_res:
host = host_res[0]
sys.exit(0 if (host and re.match('crawl-.*\.googlebot\.com', host)) els$
else:
sys.exit(1)
if __name__ == '__main__':
is_googlebot(process_args(sys.argv))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment