perl function getsockname
The getsockname
function is a built-in Perl function that is used to retrieve the local address of a socket. It takes a socket file descriptor as its argument and returns an array containing the local address information.
Here's an example that demonstrates how to use getsockname
:
#!/usr/bin/perl use strict; use warnings; use Socket; # Create a socket socket(SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp')); # Bind the socket to a local address and port bind(SOCK, sockaddr_in(0, inet_aton('127.0.0.1'))); # Get the local address of the socket my $local_addr = getsockname(SOCK); # Print the local address information my ($port, $addr) = sockaddr_in($local_addr); print "Local Address: " . inet_ntoa($addr) . "\n"; print "Local Port: " . $port . "\n"; # Close the socket close(SOCK);
In this example, we create a socket using the socket
function and bind it to a local address and port using the bind
function. We then call getsockname
to retrieve the local address information and assign the returned array to the variable $local_addr
. We extract the port number and address from the array using the sockaddr_in
function and then convert the address to a human-readable format using inet_ntoa
. Finally, we print the local address information.
Note that we need to include the Socket
module in order to use the sockaddr_in
and inet_aton
functions, which are used to manipulate socket addresses.