(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
socket_getsockname — Запрашивает локальную сторону указанного сокета, в результате можно получить хост/порт или путь в файловой системе Unix, в зависимости от типа сокета
Замечание: Функция socket_getsockname() не должна использоваться с сокетами
AF_UNIX, созданными при помощи функции socket_connect() . Только сокеты, созданные функцией socket_accept() и первичные серверные сокеты после вызова socket_bind() , позволяют получить осмысленный ответ при вызове этой функции.
socketЭкземпляр Socket , созданный функцией socket_create() или socket_accept() .
address
Если заданный сокет имеет тип AF_INET или
AF_INET6 , socket_getpeername()
вернёт локальный IP-адрес в соответствующем формате (
например, 127.0.0.1 или fe80::1) в параметре
address и, если необязательный параметр
port присутствует, также связанный порт.
Если заданный сокет имеет тип AF_UNIX ,
socket_getpeername() вернёт путь в файловой системе Unix
(т.е. /var/run/daemon.sock) в параметр
address.
portЕсли указан, то будет содержать соответствующий порт.
Функция возвращает true , если выполнилась успешно, или false , если возникла ошибка. socket_getsockname() может также возвращать
false , если тип сокета не является одним из AF_INET ,
AF_INET6 , или AF_UNIX , в этом случае
код последней ошибки сокета не обновляется.
| Версия | Описание |
|---|---|
| 8.5.0 |
Теперь получает индекс интерфейса и его строковое представление
при использовании на сокете семейства AF_PACKET .
|
| 8.0.0 |
Параметр socket теперь принимает объект Socket ;
раньше принимался тип resource .
|
Curiously, getsockname() works for socket_create() and socket_create_pair() Unix-domain (AF_UNIX) sockets if one calls socket_bind() after creation to name the formerly anonymous socket(s).
Using a socket_bind() call also results in a file system "file" (socket, first character 's' in an "ls -l" listing) being created with the given name. Such a "file" will need to be removed explicitly, as closing the socket will not remove it.