find_local_ip(char *src_ip_addr,char *interface)
{
int tempsfd;
struct ifreq ifr;
struct sockaddr_in *sin = (struct sockaddr_in *)&ifr.ifr_addr;
memset(&ifr,0,sizeof(ifr));
if((tempsfd = socket(AF_INET,SOCK_STREAM,0))==-1) {
perror("temp socket");
exit(0);
}
strcpy(ifr.ifr_name,interface);
sin->sin_family = AF_INET;
if(ioctl(tempsfd,SIOCGIFADDR,&ifr)==0) {
close(tempsfd);
strcpy(src_ip_addr,inet_ntoa(sin->sin_addr));
return 0;
}
else
perror("ioctl");
close(tempsfd);
return 0;
}
Tuesday, June 23, 2009
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment