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 — ローカルまたはリモートのソケットの名前を取得する
説明
string stream_socket_get_name
( resource
$handle
, bool $want_peer
)指定したソケット接続のローカルまたはリモートでの名前を返します。
パラメータ
-
handle -
名前を取得したいソケット。
-
want_peer -
TRUEに設定するとリモートでのソケットの名前を返し、FALSEに設定するとローカルでのソケットの名前を返します。
返り値
ソケットの名前を返します。
recycling dot sp dot am at gmail dot com ¶
2 years ago
eddi at to-grip dot de ¶
7 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");
}
}
} ?>
