Are you able to flag an IP address as an IP coming from a VPN?
> Given an IP address, the system will return a probabilistic value (between a value of 0 and 1) of how likely the IP is a VPN / proxy / hosting / bad IP. A value of 1 means that IP is explicitly banned (a web host, VPN, or TOR node) by our dynamic lists.
We've been using it for a while and are pretty happy.
Disclaimer: I'm the founder of Shodan and identifying the type of connection is something we're often used for.