As I promised, I was going to give you guys another example of a php3 program.
This program is a very simple program, and yet somewhat useful.
One night, I was at the university working and I tried to call home to
talk to my wife. Unfortunately, I had left my computer connected that day,
and could not get through. So, since my computer was running Apache, I
decided to scan through the IPs of my ISP , and find out which computer
was my computer, so I could telnet to it, and remotely disconnect it.
The fastest, and simplest way to do this was either through php3 or java,
but since I am not very fond of java applets, I decided to do it in php3.
And here is how it goes:
<?
//Author: Anderson Silva
//Date: September, 1999
//Opens socket and goes through a bunch of sequential IPs, and
//it returns all the address that have a web server running.
// This loop will go through all addresses in the block 10.0.0.x
// The 10.0.0.x series is a fictional example, these IPs are normally
// for intranet addresses, I am just trying to keep my ISP safe from
// all of you guys :-)
for($i=1; $i < 256; $i++)
{
// $path is the variable that will hold the URL you are testing.
$path = "http://10.0.0.".$i;
// Opens socket on server PAI, port 80.
$fp = fsockopen("pai", 80, &$errno, &$errstr);
// Sends the HTTP request that returns the info we need to know.
fputs($fp,"GET $path HTTP/1.0\n\n");
set_socket_blocking($fp, false);
// This is the string we wait for as a reply to the HTTP request.
$str2 = "HTTP/1.0 200 OK";
// Gives the program 2 seconds to try to connect to the server.
Sleep(2);
// Captures the line from the
HTTP request.
$line = fgets($fp, 16);
// If str2 is the same line, then we have a match, and there is a web
// server running. Then go ahead and show me the name of the server with
One important observation, this process is very simple, but it is very
inefficient, since for every IP you check you will wait a maximum of 2
seconds. So, don't abuse this script, because you will probably get a time
out operation from your web server, or you will be stuck waiting for all
the iterations for a long time.
But still, it is a good example of what you as a home user can do with
php3.
Next month, I will write yet another example of php3 program, this time
I will show you how to create your own guest book, using php3 and mySQL.