IIS APIを使用してIPアクセスを無効にする方法

coldplay.xixi
リリース: 2020-12-18 17:47:38
転載
7547 人が閲覧しました

#IIS のインストールこのコラムでは、IIS API を使用して IP アクセスを無効にする方法を紹介します

IIS APIを使用してIPアクセスを無効にする方法# #無料の推奨事項:

IIS のインストール

このクラスは、

Microsoft.Web.Administration

: PS: Microsoft.Web に基づく単純なパッケージです。管理
Nuget を通じて検索してインストールできます。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">public class IISAdministration {     private readonly ServerManager serverManager;     public IISAdministration()     {         serverManager = new ServerManager();     }     public IEnumerable&lt;WorkerProcess&gt; GetWorkerProcesses()     {         return serverManager.WorkerProcesses;     }     public IEnumerable&lt;string&gt; GetSiteNames()     {         foreach (var item in GetWorkerProcesses())         {             yield return item.AppPoolName;         }     }     public ConfigurationElementCollection GetIpSecurityCollection(string site)     {         return GetConfigurationElementCollection(&quot;system.webServer/security/ipSecurity&quot;, site);     }     public ConfigurationElementCollection GetConfigurationElementCollection(string sectionName, string site = &quot;&quot;)     {         var config = serverManager.GetApplicationHostConfiguration();         ConfigurationSection section;         if (string.IsNullOrWhiteSpace(site))         {             section = config.GetSection(sectionName);         }         else         {             section = config.GetSection(sectionName, site);         }         return section.GetCollection();     }     public void CreateElement(ConfigurationElementCollection section, ConfigurationElement element)     {         section.Add(element);         serverManager.CommitChanges();     }     public void RemoveElement(ConfigurationElementCollection section, ConfigurationElement element)     {         section.Remove(element);         serverManager.CommitChanges();     }     public bool HasBlocked(string siteName, string ip)     {         var ipSecurityCollection = this.GetIpSecurityCollection(siteName);         for (int i = 0; i &lt; ipSecurityCollection.Count; i++)         {             var element = ipSecurityCollection[i];             if ((string)element[&quot;ipAddress&quot;] == ip)             {                 return true;             }         }         return false;     }     public void FreeIP(string siteName, string ip)     {         if (!HasBlocked(siteName, ip))         {             return;         }         var ipSecurityCollection = this.GetIpSecurityCollection(siteName);         for (int i = 0; i &lt; ipSecurityCollection.Count; i++)         {             var element = ipSecurityCollection[i];             if ((string)element[&quot;ipAddress&quot;] == ip)             {                 this.RemoveElement(ipSecurityCollection, element);                 break;             }         }     }     public void BlockIP(string siteName, string ip)     {         if (HasBlocked(siteName, ip))         {             return;         }         var ipSecurityCollection = this.GetIpSecurityCollection(siteName);         var element = ipSecurityCollection.CreateElement(&quot;add&quot;);         element[&quot;ipAddress&quot;] = ip;         element[&quot;allowed&quot;] = false;         ipSecurityCollection.Add(element);         serverManager.CommitChanges();     } }</pre><div class="contentsignin">ログイン後にコピー</div></div>使用法:

var iisAdministration = new IISAdministration();
iisAdministration.BlockIP("", "192.0.0.1");
ログイン後にコピー

注意:

    BlockIP
  1. 最初のパラメータはサイト名です。空の文字列の場合は、 IIS のルート パスの下の IP マスクに追加します。 このメソッドは例外をスローするため、実行するには管理者権限が必要です。

以上がIIS APIを使用してIPアクセスを無効にする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jianshu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート