PHP Unconference Europe 2015

socket_getpeername

(PHP 4 >= 4.1.0, PHP 5)

socket_getpeernamePregunta a la parte remota del socket dado que puede resultar en un host/puerto o en una ruta de sistema de archivos Unix, dependiendo de su tipo

Descripción

bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )

Pregunta a la parte remota del socket dado que puede resultar en un host/puerto o en una ruta de sistema de archivos Unix, dependiendo de su tipo.

Parámetros

socket

Un recurso socket válido creado con socket_create() o socket_accept().

address

Si el socket dado es de tipo AF_INET o AF_INET6, socket_getpeername() devolverá la dirección IP de los pares (remotos) en la notación apropiada (p.ej. 127.0.0.1 o fe80::1) en el parámetro address, y si el parámetro opcional port está presente, tmbién el puerto asociado.

Si el socket dado es de tipo AF_UNIX, socket_getpeername() devolverá la ruta del sistema de archivos Unix (p.ej. /var/run/daemon.sock) en el parámetro address.

port

Si se da, contendrá el puerto asociado a address.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error. socket_getpeername() puede también devolver FALSE si el tipo de socket no es ni AF_INET, AF_INET6, ni AF_UNIX, en cuyo caso no se actualiza el último código de error de socket.

Notas

Nota:

socket_getpeername() no debería usarse con sockets AF_UNIX creados con socket_accept(). Sólo los sockets creados con socket_connect() o un socket principal de servidor seguido de una llamada a socket_bind() devolverán valores con sentido.

Nota:

Para hacer que socket_getpeername() devuelva un valor con sentido, el socket sobre el que es aplicado debe ser, por supuesto, uno cuyo concepto de "par" tenga sentido.

Ver también

  • socket_getsockname() - Preguntar a la parte local del socket dado que puede resultar en un host/puerto o en una ruta de sistema de archivos Unix, dependiendo de su tipo
  • socket_last_error() - Devuelve el último error sobre un socket
  • socket_strerror() - Devuelve una cadena que describe un error de socket

add a note add a note

User Contributed Notes 1 note

up
1
redph0enix at hotmail dot com
11 years ago
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";
To Top