/* getaddrbyifname -- local inet addr (ip address) lookup by interfacename compile with $ CFLAGS="-Wall -pedantic -O2 -s" make getaddrbyifname example $ ./getaddrbyifname lo 127.0.0.1 don't ask me about it, sven-at-remote-dot-org */ #include /* strcpy */ #include /* bzero */ #include #include /* struct ifreq */ #include #include /* puts */ #include /* close */ int main(int argc, char *argv[]) { struct ifreq ifr; int sock; int t=1; if(!(argc>1) || argv[1][0]=='-') { puts( __FILE__" / "__DATE__" "__TIME__); puts( "parameter: [interface1] [interface2] ... "); puts( "example: lo eth0 ppp0"); return(-1); } sock = socket(AF_INET, SOCK_DGRAM, 0); if(sock < 0) { puts("socket"); return(-1); } while(t= 0) { puts(inet_ntoa( ((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr )); } t++; } close(sock); return(0); }