Comment
Comment by mmh0000
Something like this can be implemented in Linux's NetFilter quite easily using the recent module:
The above would start dropping packets from anyone who hits 10 or more ports not previously accepted by an accept rule, and block the /24 of anyone who hits one of the more commonly scanned ports.