fsockopen -> returning results from port 80, 8080 and 443 requests
| From: | Dave [Hawk-Systems] | Date: | Sun, 06 Jul 2003 16:46:40 +0000 |
| Subject: | fsockopen -> returning results from port 80, 8080 and 443 requests | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-154131@lists.php.net to get a copy of this message | ||
Creating a quick script where we can poll the services on a particular server to
verify if they are running or not. this will be included in a larger scope
application once the details are worked out.
Am having a problem getting results from queries to web server ports though.
Port 80(std), 8080(FP), and 443(SSL) either timeout without returning any
results, or error with some of the other attempts at illiciting a response that
we have tried (like specifying ssl:// prior to the hostname).
Code and two smaple outputs below. Thoughts?
Dave
<!-- begin socket.php -->
<?PHP
# get form submitted host
$host=$_POST['host'];
$portstring=array("Testing SSH:<br>\n","Testing
TELNET:<br>\n","Testing
FTP:<br>\n","Testing HTTP:<br>\n","Testing
HTTPS:<br>\n","Testing
SMTP:<br>\n","Testing POP3:<br>\n","Testing
IMAP:<br>\n");
$portput=array("","","","GET / HTTP/1.1\r\nHost:
$host\r\n\r\n","GET /
HTTP/1.1\r\nHost: $host\r\n\r\n","","","");
$portprepend=array("","","","tcp://","ssl://","","","");
$port=array(22,23,21,80,443,25,110,143);
for($i=0;$i<count($port);$i++){
$result=date("H:i:s")."-";
$fp = fsockopen($portprepend[$i].$host, $port[$i], $errno, $errstr,5);
if (!$fp){
$result=$portstring[$i]." Error($errno):
$errstr<br>\n";
}else{
# see if we have to nudge for a response
if(strlen($portput[$i]>0)){
fputs ($fp, $portput[$i]);
}
# get the response
$result.=$portstring[$i]." ";
$result.= fgets($fp,1024);
fclose ($fp);
$result.="<br>\n";
$result=trim($result);
}
echo $result;
flush;
}
?>
<!-- end socket.php -->
<!-- begin sample output with "tcp://" for 80 and "ssl://" for 443 -->
12:20:13-Testing SSH:
SSH-1.99-OpenSSH_3.5p1 FreeBSD-20030201
12:20:13-Testing TELNET:
Error(61): Connection refused
12:20:13-Testing FTP:
220 isp1.nexusinternetsolutions.net FTP server (Version 6.00LS) ready.
12:20:13-Testing HTTP:
Error(0):
12:20:13-Testing HTTPS:
Error(0):
12:20:13-Testing SMTP:
220 isp1.nexusinternetsolutions.net ESMTP
12:20:13-Testing POP3:
Error(61): Connection refused
12:20:13-Testing IMAP:
Error(61): Connection refused
<!-- end sample output with "tcp://" for 80 and "ssl://" for 443 -->
<!-- begin sample output with "" for 80 and "" for 443 -->
12:21:44-Testing SSH:
SSH-1.99-OpenSSH_3.5p1 FreeBSD-20030201
12:21:44-Testing TELNET:
Error(61): Connection refused
12:21:44-Testing FTP:
220 isp1.nexusinternetsolutions.net FTP server (Version 6.00LS) ready.
12:21:44-Testing HTTP:
12:26:46-Testing HTTPS:
12:31:47-Testing SMTP:
220 isp1.nexusinternetsolutions.net ESMTP
12:31:47-Testing POP3:
Error(61): Connection refused
12:31:47-Testing IMAP:
Error(61): Connection refused
<!-- end sample output with "" for 80 and "" for 443 -->