首頁 專題 IIS 如何使用IIS API禁用IP訪問

如何使用IIS API禁用IP訪問

Dec 18, 2020 pm 05:47 PM
api iis

IIS安裝欄位介紹如何使用IIS API停用IP存取

如何使用IIS API禁用IP訪問

免費推薦: IIS安裝

這個類別是基於Microsoft.Web.Administration 寫的一個簡單封裝:
PS: Microsoft.Web.Administration 可透過Nuget 搜尋安裝。

public class IISAdministration
{
    private readonly ServerManager serverManager;
    public IISAdministration()
    {
        serverManager = new ServerManager();
    }

    public IEnumerable<WorkerProcess> GetWorkerProcesses()
    {
        return serverManager.WorkerProcesses;
    }

    public IEnumerable<string> GetSiteNames()
    {
        foreach (var item in GetWorkerProcesses())
        {
            yield return item.AppPoolName;
        }
    }

    public ConfigurationElementCollection GetIpSecurityCollection(string site)
    {
        return GetConfigurationElementCollection("system.webServer/security/ipSecurity", site);
    }

    public ConfigurationElementCollection GetConfigurationElementCollection(string sectionName, string site = "")
    {
        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 < ipSecurityCollection.Count; i++)
        {
            var element = ipSecurityCollection[i];
            if ((string)element["ipAddress"] == 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 < ipSecurityCollection.Count; i++)
        {
            var element = ipSecurityCollection[i];
            if ((string)element["ipAddress"] == 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("add");
        element["ipAddress"] = ip;
        element["allowed"] = false;

        ipSecurityCollection.Add(element);
        serverManager.CommitChanges();
    }
}

使用方法:

var iisAdministration = new IISAdministration();
iisAdministration.BlockIP("", "192.0.0.1");

注意:

  1. #BlockIP第一個參數為網站名,如果空字串,則直接新增到IIS 根路徑下的IP屏蔽。
  2. 此方法會拋出異常,而且需要管理員權限才能執行。

以上是如何使用IIS API禁用IP訪問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1604
29
PHP教程
1510
276
xml格式怎麼打開 xml格式怎麼打開 Apr 02, 2025 pm 09:00 PM

用大多數文本編輯器即可打開XML文件;若需更直觀的樹狀展示,可使用 XML 編輯器,如 Oxygen XML Editor 或 XMLSpy;在程序中處理 XML 數據則需使用編程語言(如 Python)與 XML 庫(如 xml.etree.ElementTree)來解析。

IIS:Microsoft Web服務器的簡介 IIS:Microsoft Web服務器的簡介 May 07, 2025 am 12:03 AM

IIS是微軟開發的用於託管網站和應用程序的網絡服務器軟件。 1.安裝IIS可以通過Windows的"添加角色和功能"嚮導完成。 2.創建網站可以通過PowerShell腳本實現。 3.配置URL重寫可以通過web.config文件實現,以提高安全性和SEO。 4.調試可以通過檢查IIS日誌、權限設置和性能監控來進行。 5.優化IIS性能可以通過啟用壓縮、配置緩存和負載均衡來實現。

bootstrap導航欄怎麼設置 bootstrap導航欄怎麼設置 Apr 07, 2025 pm 01:51 PM

Bootstrap 提供了設置導航欄的簡單指南:引入 Bootstrap 庫創建導航欄容器添加品牌標識創建導航鏈接添加其他元素(可選)調整樣式(可選)

yii框架是什麼? yii框架使用方法教程 yii框架是什麼? yii框架使用方法教程 Apr 18, 2025 pm 10:57 PM

文章摘要:Yii 框架是一種高效且靈活的 PHP 框架,用於創建動態和可擴展的 Web 應用程序。它以其高性能、輕量級和易於使用的特性而聞名。本文將提供 Yii 框架的全面教程,涵蓋從安裝到配置再到開發應用程序的各個方面。本指南旨在幫助初學者和經驗豐富的開發者充分利用 Yii 的強大功能,構建可靠且可維護的 Web 解決方案。

IIS:解釋的關鍵功能和功能 IIS:解釋的關鍵功能和功能 May 03, 2025 am 12:15 AM

IIS受歡迎的原因包括其高性能、可擴展性、安全性和靈活的管理功能。 1)高性能與可擴展性通過內置的性能監控工具和模塊化設計,IIS可以實時優化和擴展服務器能力。 2)安全性提供SSL/TLS支持和URL授權規則,保護網站安全。 3)應用程序池通過隔離不同應用程序,確保服務器穩定性。 4)管理與監控通過IISManager和PowerShell腳本,簡化服務器管理。

使用IIS:託管網站和Web應用程序 使用IIS:託管網站和Web應用程序 May 10, 2025 am 12:24 AM

IIS是微軟開發的網絡服務器軟件,用於託管和管理網站及Web應用程序。 1)安裝IIS:通過控制面板或服務器管理器在Windows服務器上安裝。 2)創建網站:使用PowerShell命令如New-WebSite創建新網站。 3)配置應用程序池:為不同網站設置獨立的運行環境,提升安全性和穩定性。 4)性能優化:調整應用程序池設置和啟用內容壓縮以提高網站性能。 5)錯誤調試:通過查看IIS日誌文件來診斷和解決常見錯誤。

IIS和PHP:探索兼容性 IIS和PHP:探索兼容性 Apr 18, 2025 am 12:11 AM

IIS與PHP是兼容的,通過FastCGI模塊實現。 1.IIS通過FastCGI模塊支持PHP,使PHP作為獨立進程運行。 2.配置IIS以運行PHP需要在配置文件中定義處理程序。 3.基本用法包括啟用FastCGI模塊和設置PHP處理程序。 4.高級用法可配置PHP環境變量和超時設置。 5.常見錯誤包括版本不兼容和配置問題,可通過日誌診斷。 6.性能優化建議調整PHP進程池大小和啟用OPcache。

IIS和網絡託管:綜合指南 IIS和網絡託管:綜合指南 May 05, 2025 am 12:12 AM

IIS是微軟的Web服務器軟件,用於在Windows上託管網站;WebHosting是將網站文件存儲在服務器上,使其可通過互聯網訪問。 1)IIS安裝簡單,通過控制面板啟用;2)WebHosting選擇需考慮穩定性、帶寬、技術支持和價格;3)共享Hosting適合小型網站,專用Hosting適合流量大的網站,雲Hosting提供高靈活性和可擴展性。

See all articles