Great to hear this. Thanks for the kudos!
I came to S2Member after a sad and lonely adventure with a popular membership commercial plugin that was so laughingly inadequate that when I came to S2Member's well thought out, solid, clear UI and thoughtful explanatory I broke in to a huge grin and shouted, "Yes!!". I'll be upgrading a client to 'Pro' and doing so on one of our sites as well as donating.
Yes, you are correct. s2Member's IP restrictions are based on an adaptive concurrency of IP addresses accessing a single point of entry. This works across all aspects of s2Member; including Username logins, and all types of encrypted links, such as registration links, Specific Post/Page links, and Download Keys.
I would go ahead and break this down for you here. However, we've already begun working on s2Member v3.2.1, so I'd like to avoid any further confusion on this matter by waiting until the next official release. In the next release, there are plans to tighten IP restrictions a bit further; by breaking them down into a per-IP concurrency timeout, making s2Member more secure against slower attacks that may span a period of several weeks/months. There is also going to be a new Hook/Filter that will give developers more control over the concurrency timeouts. The defaults work fine 99% of the time, but giving developers a Hook to control things further never hurts.
Once those changes are completed, I'll be sure to add further clarification and details about how IP Restrictions are implemented; along with documentation on the new Filter:
ws_plugin__s2member_ip_restrictions__concurrency_time_per_ipUntil then, you can take a look at this file:
/includes/ip-restrictions-ok.inc.phpI'm also attaching
/ip-restrictions-ok.inc.phpfrom the development version that is to be released soon as s2Member v3.2.1.
~ If you/anyone would like to review this future release, please feel free to offer your opinion.