接着说子网掩码,思路是一样,就是通过ioctl获取值,再放到ifreq结构体当中:
82 /*************************************
83 * @Function : getNetMask
84 * @param :
85 * ifname : ifName
86 * mac : netMask
87 * @Description : get net mask
88 *************************************/
89 int getNetMask(char *ifName, char* netMask)
90 {
91 int sock_netmask;
92 char netmask_addr[50];
93
94 struct ifreq ifr_mask;
95 struct sockaddr_in *net_mask;
96
97 sock_netmask = socket(AF_INET, SOCK_STREAM, 0);
98 if(sock_netmask == -1)
99 {
100 perror("create socket failture...GetLocalNetMask/n");
101 return -1;
102 }
103
104 memset(&ifr_mask, 0, sizeof(ifr_mask));
105 strncpy(ifr_mask.ifr_name, ifName, sizeof(ifr_mask.ifr_name)-1);
106
107 if( (ioctl(sock_netmask, SIOCGIFNETMASK, &ifr_mask)) < 0 )
108 {
109