socket_getpeername
查詢給定套接字的遠程端,它可能導致主機/端口或Unix文件系統路徑,具體取決於其類型
函數名:socket_getpeername()
適用版本:PHP 4, PHP 5, PHP 7
用法:socket_getpeername() 函數用於獲取與套接字關聯的遠程主機的IP地址和端口號。
語法:bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )
參數:
返回值:成功時返回true,失敗時返回false。
示例:
<?php // 创建一个TCP套接字$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); // 绑定套接字到IP地址和端口socket_bind($socket, '127.0.0.1', 8080); // 监听连接socket_listen($socket); // 接受客户端连接$clientSocket = socket_accept($socket); // 获取客户端的IP地址和端口号if (socket_getpeername($clientSocket, $address, $port)) { echo "客户端IP地址:{$address}\n"; echo "客户端端口号:{$port}\n"; } else { echo "获取远程主机信息失败\n"; } // 关闭套接字socket_close($socket); ?>
在上面的示例中,我們創建了一個TCP套接字並綁定到本地地址和端口。然後,我們監聽連接並接受客戶端連接。最後,使用socket_getpeername() 函數獲取客戶端的IP地址和端口號,並將它們打印出來。