Thank you for this wonderful solution!
So far, it does exactly what it says on the tin, so to speak.
When network-wide activating, however, it doesnt’ appear to create the tables on every site.
[Mon Mar 30 20:06:24.983527 2020] [php7:notice] [pid 2352] [client 207.46.13.60:39254] WordPress database error Table 'wp_bmadmin.wp_242_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_242_ffirewall_block_list WHERE IP = INET6_ATON('207.46.13.60') /* From [valeriebarnettspringer.benchmark.us/category/loan-limit-floor/feed/] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list
[Mon Mar 30 20:06:25.208727 2020] [php7:notice] [pid 14950] [client 54.39.177.198:39274] WordPress database error Table 'wp_bmadmin.wp_512_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_512_ffirewall_block_list WHERE IP = INET6_ATON('54.39.177.198') /* From [shawncasey.benchmark.us/feed/] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list
[Mon Mar 30 20:06:29.162091 2020] [php7:notice] [pid 2352] [client 46.229.168.150:39402] WordPress database error Table 'wp_bmadmin.wp_350_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_350_ffirewall_block_list WHERE IP = INET6_ATON('46.229.168.150') /* From [aaronballi.benchmark.us/category/refinancing-for-investors/] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list
[Mon Mar 30 20:06:29.206108 2020] [php7:notice] [pid 11683] [client 76.122.226.31:39410] WordPress database error Table 'wp_bmadmin.wp_650_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_650_ffirewall_block_list WHERE IP = INET6_ATON('76.122.226.31') /* From [andrewpaul.benchmark.us/?s=Team] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list, referer: https://andrewpaul.benchmark.us/?s=Staff
[Mon Mar 30 20:06:29.495240 2020] [php7:notice] [pid 11683] [client 104.196.208.135:21986] WordPress database error Table 'wp_bmadmin.wp_350_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_350_ffirewall_block_list WHERE IP = INET6_ATON('104.196.208.135') /* From [aaronballi.benchmark.us/wp-cron.php?doing_wp_cron=1585598789.1904950141906738281250] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list, referer: https://aaronballi.benchmark.us/wp-cron.php?doing_wp_cron=1585598789.1904950141906738281250
[Mon Mar 30 20:06:30.092019 2020] [php7:notice] [pid 11683] [client 46.229.168.142:39474] WordPress database error Table 'wp_bmadmin.wp_102_ffirewall_block_list' doesn't exist for query SELECT IP,blockcount,expiry FROM wp_102_ffirewall_block_list WHERE IP = INET6_ATON('46.229.168.142') /* From [jimmcmahan.benchmark.us/2020/03/20/how-to-be-a-real-estate-pro-in-times-of-uncertainty-intro/] in [/nas/content/live/bmadmin/wp-content/plugins/fullworks-firewall/frontend/class-frontend.php:57] */ made by require('wp-blog-header.php'), require_once('wp-load.php'), require_once('wp-config.php'), require_once('wp-settings.php'), do_action('plugins_loaded'), WP_Hook->do_action, WP_Hook->apply_filters, Fullworks_Firewall\\FrontEnd\\FrontEnd->check_block_list
for example. So, does each site NEED its own table? It seems to me the network could share the entire table. If a single IP address is suspect, it’s suspect for everyone for the same period of time, yeah?
I guess this could be more of a feature requst.
]]>ERROR LOG
172.68.102.102 - - [06/Jan/2020:11:50:27 +0000] "POST /wp-admin/admin-ajax.php?_fs_blog_admin=true HTTP/1.1" 200 4749 "https://www.mundoemalerta.com/wp-admin/admin.php?page=fullworks-firewall-settings" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
108.162.216.82 - - [06/Jan/2020:11:50:34 +0000] "GET /minuta-para-recusa-de-duodecimos HTTP/1.1" 200 95616 "-" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; Trident/5.0)"
172.68.102.100 - - [06/Jan/2020:11:50:35 +0000] "POST /wp-cron.php?doing_wp_cron=1578311435.3402059078216552734375 HTTP/1.1" 200 4324 "https://www.mundoemalerta.com/wp-cron.php?doing_wp_cron=1578311435.3402059078216552734375" "WordPress/5.3.2; https://www.mundoemalerta.com"
172.68.102.102 - - [06/Jan/2020:11:50:33 +0000] "GET /wp-admin/plugins.php HTTP/1.1" 200 60308 "https://www.mundoemalerta.com/wp-admin/admin.php?page=fullworks-firewall-settings" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.40 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-content/plugins/wp-fastest-cache/css/style.css?ver=1578311435 HTTP/1.1" 200 11612 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.70 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-includes/js/thickbox/thickbox.css?ver=933afa HTTP/1.1" 200 5301 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.46 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=933afa HTTP/1.1" 200 5526 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.34 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-content/plugins/stop-user-enumeration/includes/vendor/freemius/wordpress-sdk/assets/css/admin/common.css?ver=933afa HTTP/1.1" 200 5379 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.128 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-content/plugins/automatic-translator-addon-for-loco-translate//assets/admin/custom-styles.css?ver=933afa HTTP/1.1" 200 4674 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
172.68.102.64 - - [06/Jan/2020:11:50:39 +0000] "GET /wp-content/plugins/wp-fastest-cache/css/toolbar.css?ver=1578311438 HTTP/1.1" 200 9004 "https://www.mundoemalerta.com/wp-admin/plugins.php" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36 Avast/77.2.2152.121"
]]>