Some additional suggestions: nmap::scanner and nmap::parser look useful for security scanning given IP address. The stat() function returns info on a file. Hits by IP address can be best maintained in a storable, to maintain a persistant hash based on address => hits. Geo::IP2Location to locate an IP address geographically.