Сокеты в PHP (функция fsockopen)

Функция fsockopen предназначена для соединения клиента с сервером. Она очень удобна, поскольку является универсальной и объединяет в себе те функции, которые есть в PHP для работы с сокетами. Функция имеет следующий синтаксис:

int fsockopen (string target, int port [, int errno [, string errstr     
[, float timeout]]]) 


Первый аргумент функции представляет собой URL хоста target, с которым необходимо соединиться, второй — номер порта port по которому произойдет соединение. Необязательный аргумент errno указывает на номер ошибки, а errstr содержит текст сообщения об ошибке. Аргумент timeout позволяет указать количество секунд, в течение которого устанавливается соединение.
Практический пример с использованием функции fsockopen

В этом примере мы разработаем простое приложение, позволяющее пользователю узнать на кого и где зарегистрирован IP-адрес. Для этого мы с помощью функции fsockopen установим соединение с сервером whois.ripe.net, как это показано ниже:

<html> 
<head> 
 <title>IP information</title> 
</head> 
<body> 
<center> 
 <FORM action=ip.php method=post> 
 <br> 
  </i></b></font> 
 <br> 
 <INPUT type=text name=ip size=35> 
 <input type=submit value='Введите IP-адрес'> 
 </form> 
</center> 
<? 
if ($ip!="") 
{ 
  $sock = fsockopen ("whois.ripe.net", 43, $errno, $errstr); 
  if (!$sock) 
  { 
    echo("$errno($errstr)"); 
    return; 
  } 
  else 
  { 
    fputs ($sock, $ip."\r\n"); 
    while (!feof($sock)) 
    { 
      echo (str_replace(":",":&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", 
                              fgets ($sock,128))."<br>"); 
    } 
  } 
  fclose ($sock); 
} 
?> 
</body> 
</html>
