I like this, but I have to tell you what I've been looking for in one of these services for forever. I help develop a fairly popular webgame. One of our biggest headaches is people who are evading bans by using VPNs (public or not), VPSes, etc. Although we've outright blocked some large chunks of IPs (AWS, for instance), I've never seen a good service that identifies those specific blocks. Sometimes I go manually dig…
With Shodan you could export a list of IPs that are currently operating a VPN service: https://www.shodan.io/search?query=port%3A500%2C4500+vpn Or you could lookup the IP of the user on Shodan and check whether that IP is running a VPN service. Per IP lookups are free on Shodan and it's fairly simple. For example, this is how you'd do it in Python: def is_vpn(user_ip): import shodan api = shodan.Shodan("API key") hos…
Edit: I made a modification for conciseness' sake, and to include SSH in the mix as that can be used as a poor man's VPN.
def is_vpn(self, ip):
api = shodan.Shodan(self.config['keys']['shodan'])
host = api.host(ip)
return any(banner['port'] in [22, 80, 500, 4500] for banner in host['data'])