欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

c# 防火墻添加/刪除 特定端口的示例

 更新時間:2020年10月28日 09:44:47   作者:一只獨行的猿  
這篇文章主要介紹了c# 如何將特定端口加入防火墻中,幫助大家更好的理解和學習c#,感興趣的朋友可以了解下

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

/// <summary>
 /// 添加防火墻例外端口
 /// </summary>
 /// <param name="name">名稱</param>
 /// <param name="port">端口</param>
 /// <param name="protocol">協(xié)議(TCP、UDP)</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)
 {
   //創(chuàng)建firewall管理類的實例: Type的GetTypeFromProgID是通過注冊表信息項目創(chuàng)建實例類型
   INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwMgr"));

   //判斷網(wǎng)絡類型,是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;
   }
   //查找以前是否有相同的規(guī)則創(chuàng)建,如果有則不再創(chuàng)建新的規(guī)則
   foreach (INetFwOpenPort mPort in netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts)
   {
     if (mPort.Protocol == protocolType && mPort.Port == port)
     {
       return;
     }
   }
   //創(chuàng)建一個防火墻端口管理實例
   INetFwOpenPort objPort = (INetFwOpenPort)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwOpenPort"));
   //設置端口實例名稱
   objPort.Name = name;
   //設置端口信息
   objPort.Port = port;
   //端口管理的網(wǎng)絡類型
   objPort.Protocol = protocolType;
   /*
   *   NET_FW_SCOPE_ALL 范圍是所有地址。 
   *   NET_FW_SCOPE_CUSTOM 自定義范圍。 
   *   NET_FW_SCOPE_LOCAL_SUBNET 范圍是本地子網(wǎng)。
   *   NET_FW_SCOPE_MAX 使用僅用于測試。不意味著為應用程序?qū)崿F(xiàn)。 
   */
   //端口的范圍,針對哪類或哪個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)
   {
     //這而需要移除多個地址之間的空白字符串,有空白字符串會出現(xiàn)設置異常
     objPort.RemoteAddresses = remoteAddresses.Replace(" ", ""); ;//"192.168.1.10,192.168.1.12.......";
   }
   //是否啟用規(guī)則
   objPort.Enabled = true;
   //加入到本地防火墻管理規(guī)則中。
   netFwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Add(objPort);
 }

  刪除規(guī)則比較簡單:創(chuàng)建防火墻實例,直接移除某種通信類型的端口就行。

/// <summary>
 /// 刪除防火墻例外端口
 /// </summary>
 /// <param name="port">端口</param>
 /// <param name="protocol">協(xié)議(TCP、UDP)</param>
public static void DeletePortsUseFirewall(int port, string protocol)
{
  //創(chuàng)建firewall管理類的實例: Type的GetTypeFromProgID是通過注冊表信息項目創(chuàng)建實例類型
  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);
  }
}

以上就是c# 防火墻添加/刪除特定端口的示例的詳細內(nèi)容,更多關(guān)于c# 防火墻添加/刪除端口的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 快速學習C# 設計模式之職責鏈模式

    快速學習C# 設計模式之職責鏈模式

    這篇文章主要介紹了C# 設計模式之職責鏈模式的的相關(guān)資料,文中代碼非常細致,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-06-06
  • 詳解Unity 實現(xiàn)語音識別功能

    詳解Unity 實現(xiàn)語音識別功能

    語言識別功能已經(jīng)在我們身邊普遍流行起來,在unity開發(fā)中語音識別也非常火熱,今天就介紹下Unity自帶的語音識別功能的實現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2021-05-05
  • 為Xamarin.Forms的導航欄增加搜索功能

    為Xamarin.Forms的導航欄增加搜索功能

    這篇文章介紹了為Xamarin.Forms的導航欄增加搜索功能的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • 舊項目升級新版Unity2021導致Visual?Studio無法使用的問題

    舊項目升級新版Unity2021導致Visual?Studio無法使用的問題

    在項目開發(fā)過程中,不可避免的會升級開發(fā)工具。這次我在舊項目版本升級到新版Unity2021.2.x時,出現(xiàn)Visual?Studio無法定位等問題,這里我給大家分享下解決方法,舊項目升級新版Unity2021導致Visual?Studio無法使用的問題,需要的朋友可以參考下
    2021-12-12
  • Unity實現(xiàn)打磚塊游戲

    Unity實現(xiàn)打磚塊游戲

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)打磚塊游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C#實現(xiàn)文字視頻生成器的示例代碼

    C#實現(xiàn)文字視頻生成器的示例代碼

    這篇文章主要為大家詳細介紹了如何利用C#實現(xiàn)簡易的文字視頻生成器,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-10-10
  • C#調(diào)用SQLite的詳細代碼舉例

    C#調(diào)用SQLite的詳細代碼舉例

    SQLite是一個輕量級、跨平臺的關(guān)系型數(shù)據(jù)庫,在小型項目中,方便,易用,同時支持多種開發(fā)語言,這篇文章主要給大家介紹了關(guān)于C#調(diào)用SQLite的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • C#設置子窗體在主窗體中居中顯示解決方案

    C#設置子窗體在主窗體中居中顯示解決方案

    接下來將介紹C#如何設置子窗體在主窗體中居中顯示,本文提供詳細的操作步驟,需要的朋友可以參考下
    2012-12-12
  • 基于C#制作一個休息提醒鬧鐘的詳細步驟

    基于C#制作一個休息提醒鬧鐘的詳細步驟

    小鬧鐘大家都應該很熟悉,它包括時間、事件,當達到某某時間時,事件發(fā)生了,并且還有一個提示信息,下面這篇文章主要給大家介紹了關(guān)于如何基于C#制作一個休息提醒鬧鐘的詳細步驟,需要的朋友可以參考下
    2023-02-02
  • C#使用Consul集群進行服務注冊與發(fā)現(xiàn)

    C#使用Consul集群進行服務注冊與發(fā)現(xiàn)

    這篇文章主要介紹了C#使用Consul集群進行服務注冊與發(fā)現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12

最新評論