/*
* 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);
}