- 论坛徽章:
- 0
|
easy得很
- BOOL SetIP(const char *pcInterface, unsigned long ulIP, unsigned long ulNetmask)
- {
- struct ifreq ifr;
- int fd;
- struct sockaddr_in *pAddr;
- if (pcInterface == NULL)
- {
- fprintf(stderr, "illegal call function SetGeneralIP!\n");
- return FALSE;
- }
- if ((fd = socket(AF_INET,SOCK_DGRAM,0)) < 0) return FALSE;
- strcpy(ifr.ifr_name, pcInterface);
- pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
- bzero(pAddr, sizeof(struct sockaddr_in));
- pAddr->sin_addr.s_addr = ulIP;
- pAddr->sin_family = AF_INET;
- if (ioctl(fd, SIOCSIFADDR, &ifr) < 0)
- {
- close(fd);
- return FALSE;
- }
- pAddr = (struct sockaddr_in *)&(ifr.ifr_addr);
- bzero(pAddr, sizeof(struct sockaddr_in));
- pAddr->sin_addr.s_addr = ulNetmask;
- pAddr->sin_family = AF_INET;
- if (ioctl(fd, SIOCSIFNETMASK, &ifr) < 0)
- {
- close(fd);
- return FALSE;
- }
- close(fd);
- return TRUE;
- }
复制代码 |
|