| Current Path : /var/www/html/mmishra/irp/nweb/ |
| Current File : /var/www/html/mmishra/irp/nweb/webserver.php |
<?php
echo "\nDemo Web server!\n";
include("icdp.inc.php");
error_reporting(E_ALL);
set_time_limit(0); //Timout, keep at 0
date_default_timezone_set('Asia/Calcutta');
ob_implicit_flush(); //Output data to the web brouser or console as we go
$address = '172.31.1.8'; //your ip
$port = 8080; //Port to listen
//$address = 'localhost';//'172.26.23.161'; //your ip
//$port = 80; //Port to listen
//$wwwroot = "/Users/indem/Sites/nweb/www/";
$wwwroot = "/var/www/html/nweb/www/";
$sock = socket_create(AF_INET, SOCK_STREAM, 0) or die ("socket_create() failed.");
@socket_bind($sock, $address, $port) or die ("socket_bind() failed");
@socket_listen($sock, 5) or die("socket_listen() failed");
echo "\nDemo Web Server with Obsolescence Filtering Feature Started on ". date('d-M-Y H:n:s') .".\n\nWaiting for incoming HTTP request...\n\n";
do {
if (($Thesocket = socket_accept($sock)) < 0) {
echo "socket_accept() failed: reason: " . socket_strerror ($msgsock) . "\n";
break;
}
if (FALSE === ($buf = socket_read($Thesocket, 2048))) {
echo "socket_read() failed: reason: " . socket_strerror ($ret) . "\n";
break 2;
}
$some = substr($buf, 4, strlen($buf));
$rest = strstr($some, " ");
$request = substr($some, 0 , strlen($some) - strlen($rest));
if($request == "/Down") die ("\nServer Shut Down.\n");
if (!$request) $request = "index.html";
if($request == "/"){
$request = "/index.html";
$mime = "text/html";
} else {
$rev = strrev($request);
$dot = strstr($rev, ".");
$GetEX = substr($request, strlen($dot), strlen($request) - strlen($dot));
switch($GetEX) {
case $GetEX == "gif":
$mime = "image/gif";
break;
case $GetEX == "jpg":
$mime = "image/jpeg";
break;
case $GetEX == "zip":
$mime = "aplication/zip";
break;
case $GetEX == "exe":
$mime = "aplication/exe";
break;
case $GetEX == "bmp":
$mime = "image/bmp";
break;
case $GetEX == "mov":
$mime = "video/quicktime";
break;
case $GetEX == "mp3":
$mime = "video/mpeg";
break;
case $GetEX == "mpeg":
$mime = "video/mpeg";
break;
case $GetEX == "txt":
$mime = "text/plain";
break;
default:
$mime = "text/html";
break;
}
}
$request = str_replace("//", "/", $request);
$content = "";
//$filename = "C:\html\phpserver" .$request;
$filename = $wwwroot . $request;
$fd = @fopen($filename, "rb");
if ($fd) {
$content = fread($fd, filesize($filename));
fclose($fd);
}
//filter web obsolescence
//$content = filterExpiry($content);
$content = filterObsolete($content);
if($content == "") {
$lens = strlen($content);
$datas = "HTTP/1.0 404 OBJECT NOT FOUND\r\nServer: MicahServer 3.2PHP\r\nDate: 8/01/02\r\nConnection: close\r\nContent-Length: $lens\r\nContent-Type: text/html\r\n\r\n$content";
socket_write($Thesocket, $datas, strlen ($datas));
} else {
//$lens = filesize($filename);
$lens = strlen($content);
$today = date("m.d.y");
$datas = "HTTP/1.0 200 OK\r\nServer: MicahServer 3.2PHP\r\nDate: $today\r\nConnection: close\r\nContent-Length: $lens\r\nContent-Type: $mime\r\n\r\n";
socket_send($Thesocket, $datas, strlen($datas), 0);
$S = 0;
//$DD = filesize($filename);
$DD = strlen($content);
while($S <= $DD){
$HTML = substr($content, $S, 2048);
$S += 2048;
socket_write($Thesocket, $HTML, strlen($HTML));
}
}
echo "$buf\r\n\r\n";
socket_close($Thesocket);
} while(true);
socket_close($sock);
?>