0

After accepting data from a socket, can I view the header for the data? I want to know what IP address the packet was sent to as I am listening on multiple interfaces.

Brian Tompsett - 汤莱恩
  • 5,753
  • 72
  • 57
  • 129
Quintin
  • 109
  • 1
  • 7

1 Answers1

3

You can use getsockname to fetch the local IP address of the socket.

int getsockname(int socket, struct sockaddr *restrict address,
       socklen_t *restrict address_len);

Here is an example:

struct sockaddr_in addr;
socklen_t len = sizeof(addr);
memset(&addr, 0, sizeof(addr));

getsockname(s, &addr, &len);
cnicutar
  • 178,505
  • 25
  • 365
  • 392