LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

C# 防火墻操作之特定端口

admin
2021年3月24日 22:59 本文熱度 2589

針對將特定端口加入到windows系統的防火墻中,使其允許或禁止通過防火墻。其大概思路是:

/// <summary>

 /// 添加防火墻例外端口

 /// </summary>

 /// <param name="name">名稱</param>

 /// <param name="port">端口</param>

 /// <param name="protocol">協議(TCPUDP)</param>

 /// <param name="scope">范圍類型</param>

 /// <param name="remoteAddresses">自定義范圍時的IP地址范圍</param>

 public static void AllowPortsUseFirewall(string name, int port, string protocol, NET_FW_SCOPE_ scope,string remoteAddresses)

 {

     //創建firewall管理類的實例: TypeGetTypeFromProgID是通過注冊表信息項目創建實例類型

     INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));

 

     //判斷網絡類型,是TCP還是UDP

     NET_FW_IP_PROTOCOL_ protocolType = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP;

     if (protocol.ToUpper() == "TCP")

     {

         protocolType = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP;

     }

     //查找以前是否有相同的規則創建,如果有則不再創建新的規則

     foreach (INetFwOpenPort mPort in netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts)

     {

         if (mPort.Protocol == protocolType && mPort.Port == port)

         {

             return;

         }

     }

     //創建一個防火墻端口管理實例

     INetFwOpenPort objPort = (INetFwOpenPort)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwOpenPort"));

     //設置端口實例名稱

     objPort.Name = name;

     //設置端口信息

     objPort.Port = port;

     //端口管理的網絡類型

     objPort.Protocol = protocolType;

     /*

      *      NET_FW_SCOPE_ALL  范圍是所有地址。

      *      NET_FW_SCOPE_CUSTOM 自定義范圍。

      *      NET_FW_SCOPE_LOCAL_SUBNET 范圍是本地子網。

      *      NET_FW_SCOPE_MAX  使用僅用于測試。不意味著為應用程序實現。

      */

      //端口的范圍,針對哪類或哪個IP地址

     objPort.Scope = scope;

     //此處可以指定IP地址版本信息

     //objPort.IpVersion = NET_FW_IP_VERSION_.NET_FW_IP_VERSION_V4;

     //自定義IP地址范圍

     if (objPort.Scope == NET_FW_SCOPE_.NET_FW_SCOPE_CUSTOM)

     {

         //這而需要移除多個地址之間的空白字符串,有空白字符串會出現設置異常

         objPort.RemoteAddresses = remoteAddresses.Replace(" ", ""); ;//"192.168.1.10,192.168.1.12.......";

     }

     //是否啟用規則

     objPort.Enabled = true;

     //加入到本地防火墻管理規則中。

     netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(objPort);

 }


刪除規則比較簡單:創建防火墻實例,直接移除某種通信類型的端口就行:

/// <summary>
/// 刪除防火墻例外端口
/// </summary>
/// <param name="port">端口</param>
/// <param name="protocol">協議(TCPUDP</param>
public static void DeletePortsUseFirewall(int port, string protocol)
{
    //創建firewall管理類的實例: TypeGetTypeFromProgID是通過注冊表信息項目創建實例類型
    INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));
    //移除特定類型的通信方式的端口
    if (protocol == "TCP")
    {
        netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP);
    }
    else
    {
        netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Remove(port, NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_UDP);
    }
}

該文章在 2021/3/24 22:59:16 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
欧美成年在线观看网站免费 | 在线视频免费观看成年 | 日韩国产欧美另类 | 三级国产精品伦视频 | 在线观看A∨网站 | 亚洲每日更新在线国产精品原创巨作AV |