/* GetMyIP
 *  by asder
 *
 * $ gcc getmyip.c -o getmyip
 * $ ./getmyip eth0
 *   192.168.0.139
 * $
 *
 *
 */
 
#include <sys/ioctl.h>
#include <net/if.h>
#include <arpa/inet.h>

int main(int argc, char* argv[])
{
int sock;
struct sockaddr_in *sAddr;
struct ifreq interface;

        if(argc!=2)                     //too few parameters
                return 0;

        if(strlen(argv[1])>IFNAMSIZ)    //interface too long
                return 0;

        sock = socket(PF_INET, SOCK_DGRAM, 0);
        if(sock==-1)
                return 0;

        strcpy(interface.ifr_name,argv[1]);

        if(ioctl(sock, SIOCGIFADDR, &interface)==-1)
                return 0;

        sAddr = (struct sockaddr_in*)&interface.ifr_addr;
        printf("%s",inet_ntoa(sAddr->sin_addr));

return 1;
}


