$msg\n"; flush(); } function dig($target){ message("
"); #$target = gethostbyaddr($target); if (! eregi("[a-zA-Z]", ($target = gethostbyaddr($target))) ) $msg .= "Can't do a DNS query without a hostname."; else{ if (! $msg .= trim(nl2br(`dig any $target`))) $msg .= "The dig command is not working on your system."; } #TODO: Clean up output, remove ;;'s and DiG headers $msg .= ""; message($msg); } function wwwhois($target){ $server = "whois.crsnic.net"; message("
"); $target = gethostbyaddr($target); if (! eregi("[a-zA-Z]", $target)) $msg .= "Can't WWWhois without a domain name."; else if (!eregi("\.com|\.net|\.org|\.edu", $target)) $msg .= "I currently only support .com, .net, .org, and .edu."; else{ message("Connecting to $server..."; message($msg); } function arin($target){ $server = "whois.arin.net"; message("
"); if (! $sock = fsockopen($server, 43, &$num, &$error, 10)){ unset($sock); $msg .= "Timed-out connecting to $server (port 43)"; } else{ fputs($sock, "$target\n"); while (!feof($sock)) $buffer .= fgets($sock, 10240); } fclose($sock); if(! eregi("Whois Server:", $buffer)){ if(eregi("no match", $buffer)) message("NOT FOUND: No match for $target
"); else message("Ambiguous query, multiple matches for $target:
"); } else{ $buffer = split("\n", $buffer); for ($i=0; $i
"); if(! $sock = fsockopen($nextServer, 43, &$num, &$error, 10)){ unset($sock); $msg .= "Timed-out connecting to $nextServer (port 43)"; } else{ fputs($sock, "$target\n"); while (!feof($sock)) $buffer .= fgets($sock, 10240); fclose($sock); } } $msg .= nl2br($buffer); } $msg .= "
"); if (!$target = gethostbyname($target)) $msg .= "Can't IP Whois without an IP address."; else{ message("Connecting to $server..."; message($msg); } function checkp($target,$portNum){ message("
"); if (! $sock = fsockopen($server, 43, &$num, &$error, 20)){ unset($sock); $msg .= "Timed-out connecting to $server (port 43)"; } else{ fputs($sock, "$target\n"); while (!feof($sock)) $buffer .= fgets($sock, 10240); fclose($sock); } if (eregi("RIPE.NET", $buffer)) $nextServer = "whois.ripe.net"; else if (eregi("whois.apnic.net", $buffer)) $nextServer = "whois.apnic.net"; else if (eregi("nic.ad.jp", $buffer)){ $nextServer = "whois.nic.ad.jp"; #/e suppresses Japanese character output from JPNIC $extra = "/e"; } else if (eregi("whois.registro.br", $buffer)) $nextServer = "whois.registro.br"; if($nextServer){ $buffer = ""; message("Deferred to specific whois server: $nextServer...
"); if(! $sock = fsockopen($nextServer, 43, &$num, &$error, 10)){ unset($sock); $msg .= "Timed-out connecting to $nextServer (port 43)"; } else{ fputs($sock, "$target$extra\n"); while (!feof($sock)) $buffer .= fgets($sock, 10240); fclose($sock); } } $buffer = str_replace(" ", " ", $buffer); $msg .= nl2br($buffer); } $msg .= "
"); if (! $sock = fsockopen($target, $portNum, &$num, &$error, 5)) $msg .= "Port $portNum does not appear to be open."; else{ $msg .= "Port $portNum is open and accepting connections."; if($portNum == 80) { fputs($sock,"GET / HTTP/1.0\n\n"); while(!feof($sock)) { $WebServer=fgets($sock,4096); if (ereg("^Server:",$WebServer)) { $WebServer=trim(ereg_replace("^Server:","",$WebServer)); break; } } $msg .= "\nAnd ".$WebServer." is running."; } fclose($sock); } $msg .= ""; message($msg); } function p($target){ message("
Ping Results:
"); if (! $msg .= trim(nl2br(`ping -c5 $target`))) $msg .= "Ping failed. Host may not be active."; $msg .= ""; message($msg); } function tr($target){ message("
"); if (! $msg .= trim(nl2br(`/usr/sbin/traceroute $target`))) $msg .= "Traceroute failed. Host may not be active."; $msg .= ""; message($msg); } function lookup($target){ $msg = "$target resolved to "; if( eregi("[a-zA-Z]", $target) ) $ntarget = gethostbyname($target); else $ntarget = gethostbyaddr($target); $msg .= $ntarget; message($msg); } function str_get_headers() { $headers = ""; while (list( $var, $val) = each( $GLOBALS)) { if (substr( $var, 0, 4) == "HTTP") { if(substr($val,0, 5) != "Array") { $var .= ":"; while(strlen($var) < 25) { $var .= " "; } $headers .= sprintf( "%s %s\n", $var, $val); } } } return $headers; } $flag = 1; if(strlen($ip) > 7) { $flag = 0; $ip = eregi_replace("http://","",$ip); } else { $ip = $REMOTE_ADDR; } print "