调用wpa_supplicant的代码及测试网络是否连通
2011-11-16 10:58
357 查看
直接贴代码:
测试网络是否连通的代码,直接调用的ping命令,不断的ping指定的ip地址:
void AnalysisCommand::setSSID() { printf("----------SetSSID----------\n"); char ssid[64] = {0}; char passworld[64] = {0}; int retval = g_configuretable.GetSSID(ssid); int retval2 = g_configuretable.GetPassword(passworld); if(!retval&&!retval2) { char creat_conf[128]={0}; char add_network[128]={0}; char cmd_ssid[128] = {0}; char cmd_pwd[128] = {0}; char shut_wpa[128] = {0}; char start_wpa[128] = {0}; char select_network[128]={0}; sprintf(creat_conf,"echo \"ctrl_interface=/var/run/wpa_supplicant\" > /wpa.conf"); sprintf(add_network,"wpa_cli add_network"); sprintf(cmd_ssid,"wpa_cli set_network 0 ssid \\\"%s\\\"",ssid); if( strlen(passworld)!=0) { sprintf(cmd_pwd,"wpa_cli set_network 0 psk \\\"%s\\\"",passworld); } else { sprintf(cmd_pwd,"wpa_cli set_network 0 key_mgmt NONE"); } sprintf(shut_wpa,"wpa_cli terminate"); sprintf(start_wpa,"wpa_supplicant -B -Dwext -iwlan0 -c /wpa.conf"); sprintf(select_network,"wpa_cli select_network 0"); system(shut_wpa); system(creat_conf); system(start_wpa); system(add_network); system(cmd_ssid); system(cmd_pwd); system(select_network); printf("Set SSID :%s",ssid); } }
测试网络是否连通的代码,直接调用的ping命令,不断的ping指定的ip地址:
int status = -1; for(int i=0;i<10;i++) { printf("print for the %d time...\n",i+1); if(getNetStatus()==0) { status = 0; usleep(50000); break; } }
int AnalysisCommand::getNetStatus() { char gw[64] = {0}; char ping_cmd[64] = {0}; int getgw = g_configuretable.GetGateWay(gw); if(!getgw) { sprintf(ping_cmd,"ping -c 1 -w 1 %s",gw); } else { sprintf(ping_cmd,"ping -c 1 -w 1 192.168.1.1"); printf("default gw 192.168.1.1\n"); } char buf[512]; int retval =-1; FILE *pp; if( (pp = popen(ping_cmd, "r")) == NULL ) { printf("popen() error!\n"); } else { while(fgets(buf, sizeof buf, pp)) { printf("------------------------line\n"); printf("%s", buf); if((strstr(buf,(char *)"packet loss")!=NULL)&&(strstr(buf,(char *)"100% packet loss")==NULL)) { printf("can find packet loss but cannot fint 100 packet loss\n"); retval=0; break; } } pclose(pp); } return retval; }
相关文章推荐
- 一段测试网络是否连通的代码
- Bash测试网络是否连通
- c#如何检查局域网内服务器是否连通(调用外部Ping命令获取网络连接情况)
- java 中 调用ping测试网络是否通
- ios - 测试网络状态是否连通 判断网络状态类型
- 用C#实现实现简单的 Ping 的功能,用于测试网络是否已经连通
- java测试网络是否连通
- 测试网络是否连通
- java代码测试网络是否联通
- Bash测试网络是否连通
- VB.net 代码 调用外部Ping命令判断网络连通状况
- 测试IP和端口是否与网络连通
- c#如何检查局域网内服务器是否连通(调用外部Ping命令获取网络连接情况)
- c#如何检查局域网内服务器是否连通(调用外部Ping命令获取网络连接情况)
- (转)用C#实现实现简单的 Ping 的功能,用于测试网络是否已经连通
- Delphi2010Ping某IP是否连通的代码实现
- C++调用Lua编程环境搭建及测试代码示例
- C#中检查网络是否连通的二种方法
- IOS网络第七天WebView-03js中调用webView中的代码
- Python入门教程--测试局域网中的电脑是否连通