private void bynKillProcess_Click(object sender, EventArgs e) { _data.Protocol = processProtocol.Text; _data.IpSource = ipSource.Text; _data.PortSource = portSource.Text; _data.IpDestin = ipDestin.Text; _data.PortDestin = portDestin.Text; _data.Status = processStatus.Text; uint pid = 0; if (uint.TryParse(processId.Text, out pid)) { _data.ProcessId = pid; } var temp = _datas.Where(x => ((_data.ProcessId > 0 && x.ProcessId == _data.ProcessId) || _data.ProcessId <= 0) && ((!string.IsNullOrEmpty(_data.Protocol) && x.Protocol == _data.Protocol) || string.IsNullOrEmpty(_data.Protocol)) && ((!string.IsNullOrEmpty(_data.IpSource) && x.IpSource == _data.IpSource) || string.IsNullOrEmpty(_data.IpSource)) && ((!string.IsNullOrEmpty(_data.PortSource) && x.PortSource == _data.PortSource) || string.IsNullOrEmpty(_data.PortSource)) && ((!string.IsNullOrEmpty(_data.IpDestin) && x.IpDestin == _data.IpDestin) || string.IsNullOrEmpty(_data.IpDestin)) && ((!string.IsNullOrEmpty(_data.PortDestin) && x.PortDestin == _data.PortDestin) || string.IsNullOrEmpty(_data.PortDestin)) && ((!string.IsNullOrEmpty(_data.Status) && x.Status == _data.Status) || string.IsNullOrEmpty(_data.Status))).FirstOrDefault(); List <string> cmd = new List <string>(); cmd.Add(string.Format("taskkill /PID {0} /F", temp.ProcessId)); CommandLineController.RunCommandLine(cmd); GetDataFromCommand(); }
void Awake() { instance = this; }
public void GetDataFromCommand() { List <string> cmd = new List <string>(); cmd.Add("netstat -ano"); var data = CommandLineController.ReadCommandLine(cmd); uint index = 0; _datas.Clear(); result.Text = "Total process: " + (data.Count - 10); foreach (var item in data) { if (index > 9 && item != "" && (item.Contains("TCP") || item.Contains("UDP"))) { var pmm = new ProcessInfo(); int len = item.Length; string line = item.Trim(); int start = line.IndexOf(' '); pmm.Protocol = line.Substring(0, start); //--------------------------------------------------------------------------- line = line.Substring(start + 1); line = line.TrimStart(); start = line.IndexOf(' '); string subString = line.Substring(0, start); int startPort = subString.LastIndexOf(':'); pmm.IpSource = subString.Substring(0, startPort); pmm.PortSource = subString.Substring(startPort + 1); //--------------------------------------------------------------------------- line = line.Substring(start + 1); line = line.TrimStart(); start = line.IndexOf(' '); subString = line.Substring(0, start); startPort = subString.LastIndexOf(':'); pmm.IpDestin = subString.Substring(0, startPort); pmm.PortDestin = subString.Substring(startPort + 1); //--------------------------------------------------------------------------- line = line.Substring(start + 1); line = line.TrimStart(); start = line.IndexOf(' ') == -1 ? line.Length : line.IndexOf(' '); uint pid = 0; if (uint.TryParse(line.Substring(0, start), out pid)) { pmm.Status = "EMPTY"; pmm.ProcessId = pid; } else { pmm.Status = line.Substring(0, start); line = line.Substring(start + 1); pmm.ProcessId = uint.Parse(line); } _datas.Add(pmm); } index++; } result.Text += "\r\nTotal ip source: " + _datas.Select(x => x.IpSource).Distinct().Count(); result.Text += "\r\nTotal ip destin: " + _datas.Select(x => x.IpDestin).Distinct().Count(); result.Text += "\r\nTotal port open: " + _datas.Select(x => x.PortSource).Distinct().Count(); processDataSource.DataSource = null; processDataSource.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells; processDataSource.DataSource = _datas; this.Refresh(); }