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";
socket_getpeername
(PHP 4 >= 4.1.0, PHP 5)
socket_getpeername — 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
Descripción
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
Note:
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.
Note:
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
