c# 獲取端口的連接數,網站的連接數
阿新 • • 發佈:2019-01-25
-- keyword min mark app 箭頭 stat markdown cap 原文:c# 獲取端口的連接數,網站的連接數
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/wyljz/article/details/79207507
端口連接數:
public static int PortTcpConnection(int port)
{
IPGlobalProperties properti = IPGlobalProperties.GetIPGlobalProperties();
var tcps = properti.GetActiveTcpConnections().ToList();
var list = tcps.Where(f => f.LocalEndPoint.Port == port);
var iplist = list.GroupBy(f => f.RemoteEndPoint.Address);
return iplist.Count();
}
網站連接數:
public List<WebSite> ListSite()
{
List<WebSite> list = new List<WebSite>();
using (ServerManager sm = new ServerManager())
{
foreach (var s in sm.Sites)
{
WebSite site = new WebSite();
site.ID = s.Id;
site.SiteName = s.Name;
site.ApplicationPoolName = s.Applications["/"].ApplicationPoolName;
site.PhysicalPath = s.Applications["/"].VirtualDirectories["/"].PhysicalPath;
site.State = s.State.ToString();
//System.Management.ManagementObject o = new ManagementObject("Win32_PerfFormattedData_W3SVC_WebService.Name=‘" + s.Name + "‘");
//site.CurrentConnections = int.Parse(o.Properties["CurrentConnections"].Value.ToString());這個太慢
int tcps = 0;
foreach (var tmp in s.Bindings)
{
WebSite.Bind bind = new WebSite.Bind();
bind.IP = tmp.EndPoint.Address.ToString();
bind.Port = tmp.EndPoint.Port;
bind.Host = tmp.Host;
tcps += Util.SystemInfo.PortTcpConnection(bind.Port);
site.BindList.Add(bind);
}
site.CurrentConnections = tcps;//當前連接數
list.Add(site);
}
}
return list;
}
c# 獲取端口的連接數,網站的連接數