/* * Wed Mar 3 16:21:48 EST 1999 - * h4 */ #include #include #include #include /* socket() */ #include /* socket() */ #include /* socket() */ #include /* socket() */ #include /* ifreq */ #include /* sockaddr_in */ int main(int argc, char **argv) { struct sockaddr_in *sk8; struct ifreq r0x; int sockfd; if (argc != 2) { fprintf(stderr, "usage: %s \n", argv[0]); exit(1); } /* * linux/if.h * #define ifr_name ifr_ifrn.ifrn_name */ strncpy(r0x.ifr_name, argv[1], sizeof(r0x.ifr_name)); if ((sockfd = socket(AF_INET, SOCK_STREAM, IPPROTO_IP)) == -1) { fprintf(stderr, "socket(): %s\n", strerror(errno)); exit(1); } if (ioctl(sockfd, SIOCGIFADDR, &r0x) != 0) { fprintf(stderr, "ioctl(): %s\n", strerror(errno)); exit(1); } /* * linux/if.h * #define ifr_addr ifr_ifru.ifru_addr */ sk8 = (struct sockaddr_in *)&r0x.ifr_addr; fprintf(stdout, "interface : %s\n", r0x.ifr_name); fprintf(stdout, "address: %s\n", inet_ntoa(sk8->sin_addr.s_addr)); return(0); }