Surprisingly, on my Linux system, when connected to a localhost service using IPV4, stream_get_socket_name returns ::1 as the peer or local address. One would expect to get localhost or 127.0.0.1 but the ::1 IPV6 localhost is returned instead.
stream_socket_get_name
(PHP 5)
stream_socket_get_name — Retrieve the name of the local or remote sockets
Description
string stream_socket_get_name
( resource
$handle
, bool $want_peer
)Returns the local or remote name of a given socket connection.
Parameters
-
handle -
The socket to get the name of.
-
want_peer -
If set to
TRUEthe remote socket name will be returned, if set toFALSEthe local socket name will be returned.
Return Values
The name of the socket.
recycling dot sp dot am at gmail dot com ¶
2 years ago
eddi at to-grip dot de ¶
6 years ago
Use this function to check current status of a connection:
<?php
$c=stream_socket_server("tcp://127.0.0.1:1100");
while(1){
if(is_resource($a=stream_socket_accept($c))){
# do something time-consuming
if(stream_socket_get_name($a,true)!==false){
fwrite($a,"Regards form Berlin");
}
}
} ?>
