在C程序中修改windows防火墙

Modify windows firewall in a C program

我有一个用 C 编写的 server\client 应用程序,它需要我打开一些端口并将应用程序添加到两端的 windows 防火墙。目前我正在手动执行此操作,以便我的程序 运行.

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

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

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

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 进程。