Hmm, what you get as a user's IP is questionable, no matter how you do it. How are you "discovering" the remote address?
As for whom, a reverse lookup is possible. For example, 'whois' in UNIX:
#whois 64.232.12.132
New Edge Networks NEN-AW5 (NET-64-232-0-0-1)
64.232.0.0 - 64.232.255.255
TATAK PILIPINO ATWORK-42457-32577 (NET-64-232-12-0-1)
64.232.12.0 - 64.232.12.255
and 'host', returning a in-addr.arpa (reverse DNS) pointer ...
#host 64.232.12.132
132.12.232.64.IN-ADDR.ARPA domain name pointer 132.12.232.64.transedge.com
But there's no guarantee that either of these will give you much information to work with, or that they're going to return any information at all (though that is rare). At other times there are some great clues; for example, that last address is probably in the domain "transedge.com". Sometimes you see "cable, dsl, adsl, cdm, dialup, dial" etc that may give you a clue as to the connection media.
IIRC, Apache can do name lookups in its logs, if you enable the option in your httpd.conf file ....