For reasons I will not get into, If only to prohibit a whole company from being able to access my site. Checking the remote hostname in php using gethostbyaddr() works, but this slows lower the page load an excessive amount of. Large organizations (eg. hewlett packard.com or microsoft.com) frequently have blocks of IP addresses. Can there be anyway I recieve the entire list, or shall we be held tied to the slow reverse-DNS research? If that's the case, can one speed up?

Edit: Okay, now we all know I'm able to make use of the .htaccess file to prohibit a variety. Now, how do i evaluate which that range ought to be for any given organization?

What about an .htaccess:

Deny from x.x.x.x

if you want to deny a variety say: 192.168..x you would then use

Deny from 192.168.0

and also the same is applicable for hostnames:

Deny from sub.domain.tld

or if you prefer a PHP solution

$ips = array('1.1.1.1', '2.2.2.2', '3.3.3.3');
if(in_array($_SERVER['REMOTE_ADDR'])){die();}

For more information around the htaccess method see this page.

Now to look for the range will probably be hard, a lot of companies (unless of course they're large corperate) will have an engaged IP exactly like you and me.
This can be a problem I've needed to cope with before and also the best factor is with the idea to prohibit the hostname, or even the entire range, for instance if they're on 192.168..123 then prohibit 192.168..123, unfortunatly you will obtain a couple of innocent individuals with either method.

If you are practicing safe webhosting, then you've a firewall. Utilize it.

Large companies have blocks of IP addresses, but even more compact companies rarely change their IP. So there's a good way to get this done without lowering your performance:

Each month perform a reverse research on all of the Insolvency practitioners inside your log after which invest the Insolvency practitioners utilized by that company inside your firewall as deny.

After some time yo'll start to see when they have been dynamic addresses or otherwise. When they do, then you might want to do reverse searches for every connection attempt, but unless of course they're small businesses you should not need to bother about it.

Continue using gethostbyaddr(), but behind a cache. You need to just resolve it once per Ip, after which it wouldn't be considered a significant performance problem. If you would like, prime the cache out of your server logs so coming back customers will not even hit the main one-time downturn.

In case your goal by doing this is to really make it slightly bothersome for individuals from the company to gain access to your website, stick to the advice above. However, you will not have the ability to completely ensure you are obstructing every access simply because they could continually be dealing with a proxy. And when it's available to the relaxation from the public, you'll need to bother about archive.org, internet search engine caches, etc.

Most likely not the solution you are searching for, but it is accurate.

Have a look at .htaccess if you are using apache: .htaccess tutorial

First look for the organization on whois.net. Knowing they're only one domain, perform a whois research. Otherwise, look for domain names they own by keyword.

You are able to discover the primary IP ranges designated to the organization through whois queries, after which construct your deny rule(s) accordingly.

I understand WikiScanner allows you look for a company or any other organization, after which lists the Ip ranges owned by them. Just for example, here's all of the IP addresses belonging to Google, a minimum of based on WikiScanner.

Based on HowStuffWorks, they will use something known as "IP2Location".

Do you can get the particular server config? If that's the case with respect to the server you could do this it within the configuration.

See this thread for many information that might be useful.