getsockname SOCKET

傳回 SOCKET 連線此端的封裝 sockaddr 位址,萬一你不知道位址,因為連線可能來自多個不同的 IP。

use Socket;
my $mysockaddr = getsockname($sock);
my ($port, $myaddr) = sockaddr_in($mysockaddr);
printf "Connect to %s [%s]\n",
   scalar gethostbyaddr($myaddr, AF_INET),
   inet_ntoa($myaddr);