【发布时间】:2015-12-24 10:47:51
【问题描述】:
我有一个用 C 编写的服务器\客户端应用程序,它需要我打开一些端口并将应用程序添加到两端的 Windows 防火墙。目前我正在手动执行此操作,以便我的程序能够运行。
我想为我的程序创建一个安装程序,它会自动将端口和应用程序添加到防火墙。
所以我的问题是,我可以使用 C 库或 CMD 命令来修改安装时的防火墙吗?
【问题讨论】:
我有一个用 C 编写的服务器\客户端应用程序,它需要我打开一些端口并将应用程序添加到两端的 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 进程。
【讨论】: