If you want to know if a port is open, you can use the PHP port_open() function. This function returns true if the port is open. For example, if the port is open in TCP/IP, PHP will return true. However, if you want to check if a port is open in a different protocol, you should use the fsockclose() function.
How to Check If a Port is Open in PHP
fsockopen() function
PHP checks whether a port is open on a specific host using the fsockopen() function. This function will return TRUE if the connection is established. If not, it will return FALSE. Then, you can loop through the code to check the status of the connection. To use this function, you need to be on a paid hosting account.
This function has several disadvantages. It will not work properly with HTTP/1.1. HTTP/1.0 is recommended for most web applications. This is because the HTTP/1.1 protocol uses chunked data and fsockopen will produce junk in the headers and before the body content. PHP’s fsockopen() function will return false if it can’t find the certificate store.
This function initiates a stream connection in the Unix or Internet domain. It creates a TCP socket connection with hostname and port, where hostname is an IP address or a fully qualified domain name. You also have to specify a protocol, in which case udp://hostname is used. If you’re using a Unix domain, port is set to 0. The timeout parameter is optional. Afterwards, fsockopen() returns a file pointer, which can be used by other file functions.
Besides pfsockopen(), PHP also uses fsockopen(), fgets(), and socket_set_blocking() functions. With these, you can make use of UDP support. These functions make it easier to check if a port is open by implementing the fsockopen() function. In addition, they’re part of the Curl extension.
fsockclose() function
You can use the fsockopen() function to check if a port on a particular host is open. However, most free web hosting providers disable this function so you can’t use it. Fortunately, the fsockopen() function is available on paid hosting, but you can only use it if you have a paid account. However, it’s not safe to use this function on free web hosting. The server can block your script and prevent it from working properly.
The fsockopen() function is a standard cURL function and works with both PHP and Perl. It’s an essential function for any PHP script. PHP supports both Unix and Internet socket targets. Use stream_get_transports() to find out which types of sockets are supported. By default, sockets are opened in blocking mode. To switch to non-blocking mode, you need to call stream_set_blocking(). Also, PHP provides a stream-oriented API, which provides a rich set of options and a non-blocking connection.
Here is a small code snippet you can use in PHP check if port is open:
if($pf = @fsockopen($domain,$port, $err, $err_string, 1))
{
$result = true;
fclose($pf);
}
Hope you will find this useful.