- 论坛徽章:
- 0
|
求助~~~~c语言实现linux系统下配置计算机ip地址
main(int argc, char**argv)
{
int i, fd, ret;
char *s, *dot;
struct ifreq ifr;
//fd = socket(AF_LOCAL, SOCK_STREAM, 0);
fd = socket(AF_INET, SOCK_STREAM, 0);
if (fd < 0) {
perror("socket" ;
exit(-1);
}
ifr.ifr_ifrn.ifrn_name[0]='e';
ifr.ifr_ifrn.ifrn_name[1]='t';
ifr.ifr_ifrn.ifrn_name[2]='h';
ifr.ifr_ifrn.ifrn_name[3]='0';
ifr.ifr_ifrn.ifrn_name[4]=0;
ifr.ifr_ifru.ifru_hwaddr.sa_family = AF_LOCAL;
ifr.ifr_ifru.ifru_hwaddr.sa_data[0]=0x00;
ifr.ifr_ifru.ifru_hwaddr.sa_data[1]=0x00;
dot = ip;
for (i=0;i<4;i++) {
s = dot;
dot = strchr(s, '.');
if (dot)
*dot = 0;
ifr.ifr_ifru.ifru_hwaddr.sa_data[i+2]=atoi(s);
if (dot)
dot++;
}
#if 0
ifr.ifr_ifru.ifru_hwaddr.sa_data[2]=0xc0;
ifr.ifr_ifru.ifru_hwaddr.sa_data[3]=0xff;
ifr.ifr_ifru.ifru_hwaddr.sa_data[4]=0xee;
ifr.ifr_ifru.ifru_hwaddr.sa_data[5]=0x09;
#endif
ret = ioctl(fd, SIOCSIFHWADDR, &ifr);
if (ret) {
perror("ioctl SIOCSIFHWADDR" ;
exit(-1);
}
close(fd);
return 0;
}
#define IP_FY 192.168.0.20
main()
{
get_ip(IP_FY);
printf("################\n" ;
}
试试撒啊,,应该可以的! |
|