【问题标题】:Modify windows firewall in a C program在 C 程序中修改 windows 防火墙
【发布时间】:2015-12-24 10:47:51
【问题描述】:

我有一个用 C 编写的服务器\客户端应用程序,它需要我打开一些端口并将应用程序添加到两端的 Windows 防火墙。目前我正在手动执行此操作,以便我的程序能够运行。

我想为我的程序创建一个安装程序,它会自动将端口和应用程序添加到防火墙。

所以我的问题是,我可以使用 C 库或 CMD 命令来修改安装时的防火墙吗?

【问题讨论】:

    标签: c windows firewall


    【解决方案1】:

    使用命令行,可以使用类似这样的方式打开端口:

    netsh advfirewall firewall add rule name="My Custom Rule In" dir=in action=allow protocol=TCP localport=9191
    
    netsh advfirewall firewall add rule name="My Custom Rule Out" dir=out action=allow protocol=TCP localport=9191
    

    并为应用程序添加规则

    netsh advfirewall firewall add rule name="SQL Server Windows NT" dir=inaction=allow program="C:\Program Files (x86)\Microsoft SQLServer\MSSQL.1\MSSQL\Binn\sqlservr.exe " enable=yes
    

    示例取自here

    在 Windows 上,您可以使用 system() 命令生成传递所需参数的 netsh 进程。

    【讨论】:

    • 您可以让您的 c 程序启动 netsh 程序,并在启动时传递您需要的参数。见stackoverflow.com/questions/5278641/…
    • 是的,这就是我的计划,我如何将 .exe 添加到输入输出中?我需要 2 个 exe,它们是允许在防火墙中使用的第三方
    • 查看此链接,它可能会对您有所帮助stackoverflow.com/questions/14913010/…
    • dir=in 和 dir=out 是指入站还是出站规则?
    猜你喜欢
    • 2013-07-25
    • 2011-04-18
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多