The more efficient way to blacklist IP addresses is to use your operating system's firewall, or by using a module coded specifically for this purpose, like ModSecurity.
If you don't have access to your OS and cannot add modules, then you could edit your Apache configuration file with the following (to block the example IP address
<Limit GET POST PUT>
allow from all
deny from 18.104.22.1684
Then restart Apache. As covered here, that should work for all your virtual hosts.
Alternatively, you can try to use the include directive for each virtual host config as covered here (use
deny from for each IP to block instead of
Lastly, if you do not have access to either your OS's firewall, server modules, or server configuration files (as might be the case with a shared web hosting account), you could use a server-side script like Perl to copy the IP's from a central file into each .htaccess file, and schedule this as a cron job so that each virtual host will share the same list of IP's to blacklist/block.