Most World Wide Web servers record every request they receive in a log file. When a request comes in, the server only knows the IP number of the machine from which the request was received.
It sometimes takes a few seconds for the server to look up the name associated with the IP number (a `reverse lookup'). The request is then logged and the server completes the request. Fortunately, most good HTTP servers (and/or their local nameservers) remember the result of this lookup so these few extra seconds are not required for subsequent requests from the same IP number.
A highly loaded web server may be performing hundreds of reverse lookups a minute. This can overload the web server and/or the nameserver. Thus, most web servers allow you to turn off reverse lookups to increase performance. In this case, only the IP number is recorded in the logs, but the server gives much better response times. On the other hand...
The name of each machine that accessed your site is required to generate meaningful access statistics from an httpd log. That's where logresolve comes in.
logresolve takes an httpd access log and outputs the same file with all of the domain names looked up. Where no domain name can be found, the IP number stays - so you have nothing to lose!
Doing this still requires a nameserver. To minimize the impact on your nameserver, logresolve has its very own internal hash-table cache. This means that each IP number will only be looked up the first time it is found in the log file.
logresolve is a free program developed by Tom Rathborne. Maybe you should look at his résumé.
logresolve 1.0 was written on April 16, 1995 at UUNET Canada.
logresolve 1.1, which is currently distributed with Apache HTTPD, is a more portable and slightly souped-up version of logresolve 1.0, enhanced by David Robinson.
logresolve 2.0 adds an NDBM persistent nameservice database that allows logresolve to remember lookups that it has performed in previous sessions. It will also total the number of bytes served in the log.