private static List <ProConnRecordBag> GetNetConn() { List <ProConnRecordBag> rec = new List <ProConnRecordBag>(); TcpRow[] tlist = NetProcessAPI.GetAllTcpConnections(); foreach (var item in tlist) { var pro = rec.FirstOrDefault(x => x.Name == item.owningPid.ToString()); if (pro == null) { pro = new ProConnRecordBag() { Name = item.owningPid.ToString(), Count = 0, Record = new List <ProConnRecord>() }; rec.Add(pro); } var ipConn = pro.Record.FirstOrDefault(x => x.LI == item.LocalAddress.ToString() && x.RI == item.RemoteAddress.ToString()); if (ipConn == null) { ipConn = new ProConnRecord() { LI = item.LocalAddress.ToString(), RI = item.RemoteAddress.ToString(), Conn = new List <ProConnPort>() }; pro.Record.Add(ipConn); } ipConn.Conn.Add(new ProConnPort() { LP = item.LocalPort, RP = item.RemotePort, TP = ProtocolType.TCPType.ToString().Replace("Type", ""), Status = item.state.ToString() }); pro.Count++; } UdpRow[] ulist = NetProcessAPI.GetAllUdpConnections(); foreach (var item in ulist) { var pro = rec.FirstOrDefault(x => x.Name == item.owningPid.ToString()); if (pro == null) { pro = new ProConnRecordBag() { Name = item.owningPid.ToString(), Count = 0, Record = new List <ProConnRecord>() }; rec.Add(pro); } var ipConn = pro.Record.FirstOrDefault(x => x.LI == item.LocalAddress.ToString()); if (ipConn == null) { ipConn = new ProConnRecord() { LI = item.LocalAddress.ToString(), Conn = new List <ProConnPort>() }; pro.Record.Add(ipConn); } ipConn.Conn.Add(new ProConnPort() { LP = item.LocalPort, TP = ProtocolType.TCPType.ToString().Replace("Type", "") }); pro.Count++; } return(rec); }
private void GetNetProcess() { foreach (var item in NetProcessAPI.GetAllTcpConnections()) { AddTCPNetProcess(item); } foreach (var item in NetProcessAPI.GetAllUdpConnections()) { AddUDPNetProcess(item); } }
private static void GetNetPro(List <NetProcess> proList) { foreach (var item in NetProcessAPI.GetAllTcpConnections()) { AddTCPNetPro(item, proList); } foreach (var item in NetProcessAPI.GetAllUdpConnections()) { AddUDPNetPro(item, proList); } }
private void button1_Click(object sender, EventArgs e) { button1.Enabled = false; var pName = textBox1.Text; var lIp = textBox2.Text; var lPort = textBox3.Text; var rIp = textBox4.Text; var rPort = textBox5.Text; var tps = NetProcessAPI.GetAllTcpConnections(); var ups = NetProcessAPI.GetAllUdpConnections(); dataGridView1.Rows.Clear(); foreach (var p in tps) { if (!string.IsNullOrEmpty(pName) && ProcessAPI.GetProcessNameByPID(p.owningPid).IndexOf(pName, StringComparison.OrdinalIgnoreCase) == -1) { continue; } if (!string.IsNullOrEmpty(lIp) && p.LocalAddress.ToString() != lIp) { continue; } if (!string.IsNullOrEmpty(lPort) && p.LocalPort.ToString() != lPort) { continue; } if (!string.IsNullOrEmpty(rIp) && p.RemoteAddress.ToString() != rIp) { continue; } if (!string.IsNullOrEmpty(rPort) && p.RemotePort.ToString() != rPort) { continue; } dataGridView1.Rows.Add(new object[] { p.owningPid.ToString(), ProcessAPI.GetIcon(p.owningPid, true), ProcessAPI.GetProcessNameByPID(p.owningPid), "TCP", p.LocalAddress.ToString(), p.LocalPort.ToString(), p.RemoteAddress.ToString(), p.RemotePort.ToString() }); } if (!string.IsNullOrEmpty(rIp) || !string.IsNullOrEmpty(rPort)) { button1.Enabled = true; return; } foreach (var p in ups) { if (!string.IsNullOrEmpty(pName) && ProcessAPI.GetProcessNameByPID(p.owningPid).IndexOf(pName, StringComparison.OrdinalIgnoreCase) == -1) { continue; } if (!string.IsNullOrEmpty(lIp) && p.LocalAddress.ToString() != lIp) { continue; } if (!string.IsNullOrEmpty(lPort) && p.LocalPort.ToString() != lPort) { continue; } dataGridView1.Rows.Add(new object[] { p.owningPid.ToString(), ProcessAPI.GetIcon(p.owningPid, true), ProcessAPI.GetProcessNameByPID(p.owningPid), "UDP", p.LocalAddress.ToString(), p.LocalPort.ToString(), "", "" }); } for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { DataGridViewRow r = this.dataGridView1.Rows[i]; r.HeaderCell.Value = string.Format("{0}", i + 1); } this.dataGridView1.Refresh(); button1.Enabled = true; }
private void button1_Click(object sender, EventArgs e) { dataGridView1.Rows.Clear(); //tcp if (this.comboBox1.SelectedText == "" || this.comboBox1.SelectedText == "全部" || this.comboBox1.SelectedText == "TCP") { var processNames = new List <string>(); var allConns = NetProcessAPI.GetAllTcpConnections(); //pid if (!string.IsNullOrEmpty(this.textBox1.Text)) { var t = this.textBox1.Text.Split(','); foreach (var p in t) { if (Int64.TryParse(p.Trim(), out long pid)) { allConns = allConns.Where(x => x.owningPid == pid).ToArray(); } else { processNames.Add(p.Trim()); } } } //local port if (!string.IsNullOrEmpty(this.textBox2.Text)) { var t = this.textBox2.Text.Split(','); foreach (var p in t) { if (Int32.TryParse(p.Trim(), out int port)) { allConns = allConns.Where(x => x.LocalPort == port).ToArray(); } } } //remote port if (!string.IsNullOrEmpty(this.textBox3.Text)) { var t = this.textBox3.Text.Split(','); foreach (var p in t) { if (Int32.TryParse(p.Trim(), out int port)) { allConns = allConns.Where(x => x.RemotePort == port).ToArray(); } } } if (allConns.Any()) { foreach (var p in allConns) { var pname = ProcessAPI.GetProcessNameByPID(p.owningPid); if (!processNames.Any() || processNames.Any(x => x.ToLower().Contains(pname.ToLower()))) { var icon = ProcessAPI.GetIcon(p.owningPid, true); dataGridView1.Rows.Add(new object[] { icon, pname + " " + p.owningPid, "TCP", p.LocalAddress.ToString(), p.LocalPort.ToString(), p.RemoteAddress.ToString(), p.RemotePort.ToString(), p.state.ToString() }); } } } } //udp if (this.comboBox1.SelectedText == "" || this.comboBox1.SelectedText == "全部" || this.comboBox1.SelectedText == "UDP") { var allUconns = NetProcessAPI.GetAllUdpConnections(); var processNames = new List <string>(); //pid if (!string.IsNullOrEmpty(this.textBox1.Text)) { var t = this.textBox1.Text.Split(','); foreach (var p in t) { if (Int64.TryParse(p.Trim(), out long pid)) { allUconns = allUconns.Where(x => x.owningPid == pid).ToArray(); } else { processNames.Add(p.Trim()); } } } //local port if (!string.IsNullOrEmpty(this.textBox2.Text)) { var t = this.textBox2.Text.Split(','); foreach (var p in t) { if (Int32.TryParse(p.Trim(), out int port)) { allUconns = allUconns.Where(x => x.LocalPort == port).ToArray(); } } } if (allUconns != null) { foreach (var p in allUconns) { var pname = ProcessAPI.GetProcessNameByPID(p.owningPid); if (!processNames.Any() || processNames.Any(x => pname.ToLower().Contains(x.ToLower()))) { var icon = ProcessAPI.GetIcon(p.owningPid, true); dataGridView1.Rows.Add(new object[] { icon, pname + " " + p.owningPid, "UDP", p.LocalAddress.ToString(), p.LocalPort.ToString(), "-", "-", "-" }); } } } } }