Сокеты в PHP (функция fsockopen)
Автор: IT-студия SoftTime (softtime.ru)
Функция 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(":",": ",
fgets ($sock,128))."<br>");
}
}
fclose ($sock);
}
?>
</body>
</html>