#include #include #include #include #include #include #include #include #include int main(void) { int sfd, i; struct ifreq ifr; struct sockaddr_in *sin = (struct sockaddr_in *) &ifr.ifr_addr; memset(&ifr, 0, sizeof ifr); if (0 > (sfd = socket(AF_INET, SOCK_STREAM, 0))) { perror("socket()"); exit(1); } strcpy(ifr.ifr_name, "eth0"); sin->sin_family = AF_INET; if (0 == ioctl(sfd, SIOCGIFADDR, &ifr)) { printf("%s: %s\n", ifr.ifr_name, inet_ntoa(sin->sin_addr)); } return 0; }