VS 用代码打开/关闭防火墙例外端口 | 周忞 | 吉心的记事本

VS 用代码打开/关闭防火墙例外端口

方法一、

 

在防火墙中若设某个端口如8888为例外,则可执行下列批处理程序:

@echo off
SET LIST=”HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters
SET LIST=%LIST%\FirewallPolicy\DomainProfile\GloballyOpenPorts\List”
reg add %LIST% /v “8888:TCP” /t REG_SZ /d “8888:TCP:*:Enabled:8888″ /f
:END

将上述代码保存为test.bat文件,在命令行下进入该文件目录输入test.bat或直接双击运行即可。

 

若在防火墙的例外端口中删除8888,则可执行下列代码:

@echo off
SET LIST=”HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters
SET LIST=%LIST%\FirewallPolicy\DomainProfile\GloballyOpenPorts\List”
reg delete %LIST% /v “8888:TCP” /f
:END

上述代码说白了就是直接修改注册表。

若我们在C#代码中执行批处理程序的话,我们需要建立一个*.bat文件,然后用Process执行bat文件即可。

这个代码我就不写了,用下面的方法更方便

 

方法二、

直接在命令行输入下面指令即可设8888端口为例外:

参见MSDN: http://msdn.microsoft.com/zh-cn/office/cc646023(SQL.105).aspx

@echo off

 netsh firewall set portopening protocol = TCP port = 8888 name = SQLPort mode = ENABLE scope  = SUBNET profile = CURRENT

:END

若删除之,则执行:

@echo off

netsh firewall delete portopening protocol = TCP port = 8888

:END

 

下面用代码实现:

using System.Diagnostics;

using System.IO;

private void AddPort()

{

 StringBuilder sBuilder = new StringBuilder();

            sBuilder.AppendLine(“@echo off”);
            sBuilder.AppendLine(“netsh firewall set portopening protocol = TCP port = 8888 name = SQLPort mode = ENABLE scope  = SUBNET profile = CURRENT”);
            sBuilder.Append(“:END”);
            Stream st = new FileStream((@”C:\test.bat”, FileMode.OpenOrCreate);

            using (StreamWriter sw = new StreamWriter(st) )
            {
                sw.Write(sBuilder.ToString());
                sw.Close();
                st.Dispose();
                st.Close();
            }
            Process ps = new Process();
            ProcessStartInfo psi = new ProcessStartInfo(@”C:\test.bat”);
            psi.UseShellExecute = false;
            psi.CreateNoWindow = true;
            ps.StartInfo = psi;
            ps.Start();
            while (ps.HasExited == false)
            { }
            System.IO.File.Delete(@”C:\port.bat”);

}



本文固定链接: http://www.ntxz.net/?p=600 | 周忞 | 吉心的记事本



该日志由 吉心 于2010年01月11日发表在 懒得分类, 旧版博客 分类下, 你可以发表评论
在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: VS 用代码打开/关闭防火墙例外端口 | 周忞 | 吉心的记事本

VS 用代码打开/关闭防火墙例外端口:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!