VC代码添加防火墙规则

来源:互联网 发布:9wifi九维网络登录 编辑:程序博客网 时间:2024/06/08 18:51

BOOL DealExecCmd(CString strCommandLine){USES_CONVERSION;STARTUPINFO StartInfo;memset(&StartInfo, '\0', sizeof(StartInfo));StartInfo.cb = sizeof(StartInfo);  //name structureStartInfo.dwFlags = STARTF_USESHOWWINDOW;StartInfo.wShowWindow = SW_HIDE;  //隐藏DOC窗口PROCESS_INFORMATION ProcInfo;     //name structurememset(&ProcInfo, 0, sizeof(ProcInfo));bool flag = ::CreateProcess(NULL, strCommandLine.GetBuffer(), NULL, NULL, NULL, NULL, NULL, NULL, &StartInfo, &ProcInfo);strCommandLine.ReleaseBuffer();if(flag){WaitForSingleObject(ProcInfo.hProcess,INFINITE);//此方法主要是等待进程处理CloseHandle(ProcInfo.hThread);CloseHandle(ProcInfo.hProcess);}return flag;}BOOL AddFSystemFireWallRuler(CString strfileName, CString strName ){CString fireWallRuler;if( OSVersion::IsOSAtLeast( OSVersion::OSVersionEnum::WIN_VISTA ) ){fireWallRuler.Format(_T("netsh advfirewall firewall delete rule name=\"%s\" dir=in program=\"%s\""),strName, strfileName);DealExecCmd( fireWallRuler);fireWallRuler.Format(_T("netsh advfirewall firewall add rule name=\"%s\" dir=in program=\"%s\" action=allow"), strName, strfileName);DealExecCmd( fireWallRuler);}else{fireWallRuler.Format(_T("netsh firewall add allowedprogram \"%s\" %s ENABLE"), strfileName, strName);DealExecCmd( fireWallRuler);}return TRUE;}

开启防火墙:

netsh firewall set opmode mode=enable

关闭防火墙:

netsh firewall set opmode mode=disable

 

   

命令:netsh firewall 

  参数: 

  ? // 显示命令列表 

  add // 添加防火墙配置 

  delete // 删除防火墙配置 

  dump // 显示一个配置脚本 

  help // 显示命令列表 

  reset // 将防火墙配置重置为默认值。 

  set // 设置防火墙配置 

  show // 显示防火墙配置 

  add allowedprogram // 添加防火墙允许的程序配置。 

  add portopening // 添加防火墙端口配置 

  delete allowedprogram // 删除防火墙允许的程序配置 

  delete portopening // 删除防火墙端口配置 

  set allowedprogram // 设置防火墙允许的程序配置 

  set icmpsetting // 设置防火墙 ICMP 配置 

  set logging // 设置防火墙记录配置 

  set multicastbroadcastresponse // 设置防火墙多播/广播响应配置 

  set notifications // 设置防火墙通知配置 

  set opmode // 设置防火墙操作配置 

  set portopening // 设置防火墙端口配置 

  set service // 设置防火墙服务配置 

  show allowedprogram // 显示防火墙允许的程序配置 

  show config // 显示防火墙配置。 

  show currentprofile // 显示当前防火墙配置文件 

  show icmpsetting // 显示防火墙 ICMP 配置 

  show logging // 显示防火墙记录配置 

  show multicastbroadcastresponse // 显示防火墙多播/广播响应配置 
  show notifications // 显示防火墙操作配置 

  show opmode // 显示防火墙端口配置 

  show portopening // 显示防火墙端口配置 

  show service // 显示防火墙服务配置 

  show state // 显示当前防火墙状态   

  例如: 

  命令:netsh firewall show allowedprogram //查看防火墙放行的程序 

  netsh firewall set portopening TCP 445 ENABLE //打开445端口 

  netsh firewall set portopening TCP 3389 ENABLE // 

  netsh firewall delete allowedprogram C:\A.exe //删除放行程序A.exe 

  netsh firewall set allowedprogram C:\A.exe A ENABLE //添加程序C盘下的A.exe并放行 

  netsh firewall add allowedprogram C:\A.exe A ENABLE //添加程序C盘下的A.exe并放行

    netsh firewall set icmpsettting type=ALL mode=enable //开启ICMP协议 

    netsh firewall set icmpsettting type=2 mode=enable  //允许出站数据包太大


0 0