C#在防火墙中放行某端口方法,运行结果如图所示,
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace fanghuoqiang
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
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();//关闭进程
MessageBox.Show("端口打开成功,端口为:" + this.Port.Text + "在防火墙中名称为:" + this.Inname.Text);
}
}
}
文章评论 本文章有个评论