VC代码添加防火墙规则

	BOOL DealExecCmd(CString strCommandLine)
	{
		USES_CONVERSION;

		STARTUPINFO StartInfo;
		memset(&StartInfo, '\0', sizeof(StartInfo));
		StartInfo.cb = sizeof(StartInfo);  //name structure

		StartInfo.dwFlags = STARTF_USESHOWWINDOW;
		StartInfo.wShowWindow = SW_HIDE;  //隐藏DOC窗口
		PROCESS_INFORMATION ProcInfo;     //name structure
		memset(&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  //允许出站数据包太大


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

零点零一

您的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值