1

I am currently messing around with sockets (on a UNIX based system) and would like to get the address and port of a client when they connect. How can I do this?

Serket
  • 3,785
  • 3
  • 14
  • 45

1 Answers1

0

You can extract it from a struct sockaddr_in (or sockaddr_in6).

struct sockaddr_in {
       sa_family_t    sin_family; /* address family: AF_INET */
       in_port_t      sin_port;   /* port in network byte order */
       struct in_addr sin_addr;   /* internet address */
 };

 /* Internet address. */
       struct in_addr {
       uint32_t       s_addr;     /* address in network byte order */
 };

See the man page: http://man7.org/linux/man-pages/man7/ip.7.html

Also, you can see my DNS-server code as a practical example (there is extracted IPV6 address sin6.sin6_addr).

olegarch
  • 3,670
  • 1
  • 20
  • 19