(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_getpeername — Опрашивает удалённую сторону сокета
Функция отправляет запрос удалённой стороне заданного сокета, которая возвращает либо хост и порт, либо путь в файловой системе Unix, в зависимости от типа сокета.
socketЭкземпляр Socket , который создали функциями socket_create() или socket_accept() .
address
Если тип сокета относится к семейству IPv4-адресов AF_INET или IPv6-адресов AF_INET6 :
функция socket_getpeername()
заполнит параметр address
значением IP-адреса однорангового (удалённого) узла в нотации, которая
соответствует версии протокола — 127.0.0.1 или fe80::1.
Функция также вернёт связанный с адресом порт, если указали необязательный параметр port.
Если тип сокета относится к семейству адресов файловой системы Unix AF_UNIX :
функция socket_getpeername() заполнит параметр
address значением пути в файловой системе Unix.
Например: /var/run/daemon.sock.
port
Функция заполнит параметр номером порта, который связан параметром address,
если порт указали.
Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка. Функция socket_getpeername() также может вернуть
false , если тип сокета не совпадает со значениями констант AF_INET ,
AF_INET6 или AF_UNIX ;
код последней ошибки сокета не обновляется, если возник такой случай.
| Версия | Описание |
|---|---|
| 8.0.0 |
Параметр socket теперь принимает объект Socket ;
раньше принимался тип resource .
|
Замечание:
Функцию socket_getpeername() не следует вызывать с
AF_UNIX-сокетами, которые создали функцией socket_accept() . Возвращать осмысленные значения будут только сокеты, которые создали функцией socket_connect() , или сокет основного сервера после вызова функции socket_bind() .
Замечание:
Функция socket_getpeername() возвращает осмысленное значение только для тех сокетов, для которых концепция «одноранговых отношений» имеет смысл.
socket_getpeername will not work for UDP sockets. Instead, use socket_recvfrom - it provides the IP address and port of the source server - eg:
$size=socket_recvfrom($socket,$input,65535,0,$ipaddress,$port);
echo "Received [$input] ($size bytes) from IP $ipaddress Port $port\n";