How to set the IP address from C in linux

The “correct” way for IPv4 without magic +2:

struct sockaddr_in* addr = (struct sockaddr_in*)&ifr.ifr_addr;
inet_pton(AF_INET, "10.12.0.1", &addr->sin_addr);

To use IPv6, cast it to sockaddr_in6

Leave a Comment