gpt4 book ai didi

powershell - 如何列出IIS服务器中所有事件和唯一的ips连接

转载 作者:行者123 更新时间:2023-12-02 23:03:01 24 4
gpt4 key购买 nike

我正在尝试列出IIS服务器中的所有 Activity 连接,但我不知道该如何进行。我正在研究一些方法,并尝试在Powershell中创建一个脚本,以提取特定端口(例如80端口)中的所有连接,特定端口(例如80端口)中的许多唯一连接。 。

我需要此信息,因为在某些情况下,我可以基于同一IP对该服务器进行多重访问,因此我需要过滤此IP访问并查找两个数字,一个显示所有 Activity 的连接,另一个显示所有唯一的连接。

谢谢您的帮助!!

最佳答案

您可以使用 appcmd 列出IIS当前正在处理的所有 Activity 请求:

appcmd list requests

我在上面故意使用“过程”一词的原因是IIS实际上并没有处理/终止HTTP连接-处理连接的底层底层工作被卸载到OS级HTTP驱动程序( http.sys)。

如果可以直接从内核缓存中处理请求,则它可能会抢占请求处理,而这样的请求将永远不会出现在请求列表中。要查看与计算机的 Activity 连接,您要么必须断开 netstat:
$Connections = netstat -aon |findstr ":80 "

或使用.NET来 do something similar:
$GlobalIPProperties = [System.Net.NetworkInformation.IPGlobalProperties]::GetIPGlobalProperties()
$Connections = $GlobalIPProperties.GetActiveTcpConnections() |Where-Object { $_.LocalEndpoint.Port -eq 80 }

在Windows 2012/8或更高版本上,您还可以使用 Get-NetTCPConnection cmdlet:
$Connections = Get-NetTCPConnection -LocalPort 80 

后一个选项很好,因为之后您可以轻松地与 $Connections中的对象进行交互(即,不需要字符串处理)。例如按IP对连接进行分组:
# If using IPGlobalProperties
$DistinctIPCount = @($Connections |Group {$_.RemoteEndpoint.Address}).Count

# If using Get-NetTCPConnection
$DistinctIPCount = @($Connections |Group {$_.RemoteAddress}).Count

关于powershell - 如何列出IIS服务器中所有事件和唯一的ips连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com