if you want ISP use this

PHP Code:
$ip $_SERVER['REMOTE_ADDR'];

$isp gethostbyaddr($ip);

echo 
$isp
cookie + ip is the way to go I dont think php can get the remote machines name. You may want to do a check to see if the ip is a proxy then a conversion to change it back to its original IP then black list that. It would only black list those who use that IP not anyone from that ISP, ISP is the service provider of your net and your ip is your unique ID for your connection while on the net.