有的时候我们的软件需要通过防火墙的端口访问网络,但是很多时候一些不经常使用的端口都是默认关闭的,下面是用C#代码打开防火墙的代码,代码打开防火墙端口的原理是使用CMD dos命令去打开相应的防火墙端口的代码,代码如下:
string port = this.Port.Text.ToString();//获取端口号
string inname = this.Inname.Text.ToString();//打开端口号的名称
string str = " netsh advfirewall firewall add rule name=" + inname + " dir=in action=allow protocol=TCP localport= " +port;
System.Diagnostics.Process pro = new System.Diagnostics.Process();//实例化进程
pro.StartInfo.FileName = "cmd.exe";//设置要运行的程序文件
pro.StartInfo.UseShellExecute = false;//是否使用操作系统shell程序启动
pro.StartInfo.RedirectStandardInput = true;//是否接受来自应用程序的调用
pro.StartInfo.RedirectStandardOutput = true;//是否接受来自应用程序的输出信息
pro.StartInfo.RedirectStandardError = true;//是否接受重定向错误信息
pro.StartInfo.CreateNoWindow = true;//不显示窗口信息
pro.Start();//启动程序
//向cmd窗口发送输入信息
pro.StandardInput.WriteLine(str + "&exit");
pro.StandardInput.AutoFlush = true;
//获取窗口输出的信息
string info = pro.StandardOutput.ReadToEnd();
pro.WaitForExit();//等待程序运行完退出程序
pro.Close();//关闭进程
this.Info.Items.Add("打开成功!!");
这只是打开端口的代码,大家可以在后面添加扫描端口是否已经打开如果已经打开就不在打开端口等等代码,这里就不一一举例编写了。