函式名:socket_getpeername()
適用版本:PHP 4, PHP 5, PHP 7
用法:socket_getpeername() 函式用於獲取與套接字關聯的遠端主機的IP地址和埠號。
語法:bool socket_getpeername ( resource $socket , string &$address [, int &$port ] )
引數:
- $socket:必需。一個有效的套接字資源,由 socket_create() 或 socket_accept() 返回。
- $address:必需。用於儲存遠端主機的IP地址。
- $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地址和埠號,並將它們列印出來。