[TAC] Stop Country Spam

[TAC] Stop Country Spam [Paid] 3.1.5

No permission to buy ($19.00)
Running the latest verson and I'm getting this in the server error logs. Any ideas?
Code:
end_Db_Statement_Mysqli_Exception: Mysqli statement execute error : Data too long for column 'ip_address' at row 1 - library/Zend/Db/Statement/Mysqli.php:214
Generated By: Unknown Account, Yesterday at 10:58 PM
Stack Trace
#0 /home/zroadstr/public_html/library/Zend/Db/Statement.php(297): Zend_Db_Statement_Mysqli->_execute(Array)
#1 /home/zroadstr/public_html/library/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /home/zroadstr/public_html/library/Zend/Db/Adapter/Abstract.php(574): Zend_Db_Adapter_Abstract->query('INSERT INTO `sf...', Array)
#3 /home/zroadstr/public_html/library/XenForo/DataWriter.php(1638): Zend_Db_Adapter_Abstract->insert('sf_stopproxies', Array)
#4 /home/zroadstr/public_html/library/XenForo/DataWriter.php(1627): XenForo_DataWriter->_insert()
#5 /home/zroadstr/public_html/library/XenForo/DataWriter.php(1419): XenForo_DataWriter->_save()
#6 /home/zroadstr/public_html/library/Tac/StopCountrySpam/Model/StopProxies.php(71): XenForo_DataWriter->save()
#7 /home/zroadstr/public_html/library/Tac/StopCountrySpam/Model/StopProxies.php(25): Tac_StopCountrySpam_Model_StopProxies->localStopProxiesSubmit(Array)
#8 /home/zroadstr/public_html/library/Tac/StopCountrySpam/Model/Spam.php(149): Tac_StopCountrySpam_Model_StopProxies->stopProxiesErrors('StopCountrySpam...', '', '', '2da6a50bf884414...', 'register/key-up...')
#9 /home/zroadstr/public_html/library/Tac/StopCountrySpam/ControllerPublic/Register.php(212): Tac_StopCountrySpam_Model_Spam->isProxy('StopCountrySpam...', '', '', Object(XenForo_Input))
#10 /home/zroadstr/public_html/library/XenForo/FrontController.php(351): Tac_StopCountrySpam_ControllerPublic_Register->actionIndex()
#11 /home/zroadstr/public_html/library/XenForo/FrontController.php(134): XenForo_FrontController->dispatch(Object(XenForo_RouteMatch))
#12 /home/zroadstr/public_html/index.php(13): XenForo_FrontController->run()
#13 {main}
Request State
array(3) {
  ["url"] => string(31) "https://zroadster.org/register/"
  ["_GET"] => array(0) {
  }
  ["_POST"] => array(0) {
  }
}
 
Looks like an issue with stop proxies and ipv6, I thought i cleaned all of these up a long time ago. Turn off stop proxies for now, and all add a fix this weekend (should be an easy one to fix)
 
Does StopCountrySpam check the country code when the registration page is loading? I've found that this plugin slows down the registration page from loading by a good few seconds, enough to deter people from registering. Disabling the plugin speeds things up. The GeoIP API seems fast enough, so not sure where the delay is.

Is it possible to have an async ip>country lookup once the page has loaded? That would give it 5-10 seconds (depending on what the registration timer is set to).
 
Does StopCountrySpam check the country code when the registration page is loading? I've found that this plugin slows down the registration page from loading by a good few seconds, enough to deter people from registering. Disabling the plugin speeds things up. The GeoIP API seems fast enough, so not sure where the delay is.

Is it possible to have an async ip>country lookup once the page has loaded?

It checks before serving the registration page, because if the IP is excluded it must show a "not accepting registrations" page instead. Putting it on the submit action isn't much friendlier, because then the user will fill in all the form and the captcha, only to find out he didn't have the right to register anyway. PHP, and this stack generally, is not so async friendly. Also holding an IP database locally has its own problems (generally $ for buying an accurate one and keeping it up to date). There could be room to improve it in the future, like somehow preemptively caching the IP->geolocation on first visit. [(edit: done)].
 
Last edited:
@Yugensoft despite having the options for registrations from Pakistan and India checked, over the past 3 days we've had several spam registrations from those countries. None of the options have changed on my end and the version is current.

the JSON is still listed as: http://api.wipmania.com/{$ip}?k=XXX&t=json

any thoughts on what to do?
 
You could try another geoip service. There's no rules on how ip space is allocated to countries, so as new ips are allocated, it's up to the geoip service to keep up to date.
 
Can we also block new thread, new post reply, new conversation/reply, new profile post by country?

Thanks!
 
Top Bottom