Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

executable file 139 lines (125 sloc) 3.881 kB
<?php
/**
* PHP 4
*
* Copyright (c) 1997-2003 The PHP Group
*
* This source file is subject to version 2.0 of the PHP license,
* that is bundled with this package in the file LICENSE, and is
* available at through the world-wide-web at
* http://www.php.net/license/2_02.txt.
* If you did not receive a copy of the PHP license and are unable to
* obtain it through the world-wide-web, please send a note to
* license@php.net so we can mail you a copy immediately.
*
* Authors: Martin Jansen <mj@php.net>
*
* @category Net
* @package Net_Portscan
* @author Martin Jansen <mj@php.net>
* @license PHP 2.02 <http://www.php.net/license/2_02.txt>
* @version CVS: $Id$
* @link http://pear.php.net/net_portscan
*/
define("NET_PORTSCAN_SERVICE_FOUND", true);
define("NET_PORTSCAN_NO_SERVICE", false);
/**
* Portscan class
*
* This class provides methods to scan ports on machines,
* that are connected to the internet. See README for more
* information on how to use it.
*
* @category Net
* @package Net_Portscan
* @author Martin Jansen <mj@php.net>
* @license PHP 2.02 <http://www.php.net/license/2_02.txt>
* @link http://pear.php.net/net_portscan
*/
class Net_Portscan
{
// {{{ checkPort()
/**
* Check if there is a service available at a certain port.
*
* This function tries to open a connection to the port
* $port on the machine $host. If the connection can be
* established, there is a service listening on the port.
* If the connection fails, there is no service.
*
* @param string $host Hostname
* @param integer $port Portnumber
* @param integer $timeout Timeout for socket connection in seconds
* (default is 30).
*
* @access public
* @return string
*/
function checkPort($host, $port, $timeout = 30)
{
$socket = @fsockopen($host, $port, $errorNumber, $errorString, $timeout);
if (!$socket) {
return NET_PORTSCAN_NO_SERVICE;
}
@fclose($socket);
return NET_PORTSCAN_SERVICE_FOUND;
}
// }}}
// {{{ checkPortRange()
/**
* Check a range of ports at a machine
*
* This function can scan a range of ports (from $minPort
* to $maxPort) on the machine $host for running services.
*
* @param string $host Hostname
* @param integer $minPort Lowest port
* @param integer $maxPort Highest port
* @param integer $timeout Timeout for socket connection in seconds
* (default is 30).
*
* @access public
*
* @return array Associative array containing the result
*/
function checkPortRange($host, $minPort, $maxPort, $timeout = 30)
{
for ($i = $minPort; $i <= $maxPort; $i++) {
$retVal[$i] = Net_Portscan::checkPort($host, $i, $timeout);
}
return $retVal;
}
// }}}
// {{{ getService()
/**
* Get name of the service that is listening on a certain port.
*
* @param integer $port Portnumber
* @param string $protocol Protocol (Is either tcp or udp. Default is tcp.)
*
* @access public
*
* @return string Name of the Internet service associated with $service
*/
function getService($port, $protocol = "tcp")
{
return @getservbyport($port, $protocol);
}
// }}}
// {{{ getPort()
/**
* Get port that a certain service uses.
*
* @param string $service Name of the service
* @param string $protocol Protocol (Is either tcp or udp. Default is tcp.)
*
* @access public
*
* @return integer Internet port which corresponds to $service
*/
function getPort($service, $protocol = "tcp")
{
return @getservbyname($service, $protocol);
}
// }}}
}
Jump to Line
Something went wrong with that request. Please try again.