- 论坛徽章:
- 0
|
int num;
int i,s;
char *name[]={"111.111.111.111","111.111.111.111","111.111.111.111","111.111.111.111","111.111.111.111","111.111.111.111"};
s = socket(PF_INET, SOCK_DGRAM, 0);
conf.ifc_len = BUFSIZ;
conf.ifc_buf = buff;
ioctl(s, SIOCGIFCONF, &conf);
num = conf.ifc_len / sizeof(struct ifreq);
ifr = conf.ifc_req;
for(i=0;i < num;i++)
{
struct sockaddr_in *sin = (struct sockaddr_in *)(&ifr->ifr_addr);
ioctl(s, SIOCGIFFLAGS, ifr);
if(((ifr->ifr_flags & IFF_LOOPBACK) == 0) && (ifr->ifr_flags & IFF_UP))
{
printf("%s (%s)\n",ifr->ifr_name,inet_ntoa(sin->sin_addr));
name=inet_ntoa(sin->sin_addr);
printf("shuzu ip = %s \n", name); ===》这里打印name[0]\name[1]都显示没问题
}
ifr++;
}
printf("shuzu 1 = %s \n", name[0]); ==》这里显示值为空
printf("shuzu 2 = %s \n", name[1]); ==》这里显示正确
求解
|
|