//获去GateWay
- QString GetGateWay()
- {
- FILE *fp;
- char buf[512];
- char cmd[128];
- char gateway[30];
- char *tmp;
- strcpy(cmd, "ip route");
- fp = popen(cmd, "r");
- if(NULL == fp)
- {
- perror("popen error");
- return "";
- }
- while(fgets(buf, sizeof(buf), fp) != NULL)
- {
- tmp =buf;
- while(*tmp && isspace(*tmp))
- ++ tmp;
- if(strncmp(tmp, "default", strlen("default")) == 0)
- break;
- }
- sscanf(buf, "%*s%*s%s", gateway);
- printf("default gateway:%s\n", gateway);
- pclose(fp);
- return QString(gateway);
- }
//设置网关
- int SetGateWay(const char *szGateWay)
- {
- int ret = 0;
- char cmd[128];
- QString DefGW = GetGateWay();
- const char *strGW = DefGW.latin1();
- strcpy(cmd, "route del default gw ");
- strcat(cmd, strGW);
- ret = system(cmd);
- if(ret < 0)
- {
- perror("route error");
- return -1;
- }
- strcpy(cmd, "route add default gw ");
- strcat(cmd, szGateWay);
- ret = system(cmd);
- if(ret < 0)
- {
- perror("route error");
- return -1;
- }
- return ret;
- }