private void MenuListeningPorts_Click(object sender, EventArgs e) { try { var header = "Listening TCP/UDP Ports: "; var tableview = new TableViwForm(); tableview.Tittle = header; tableview.ColumnHeaders.Add(new ColumnHeader("#", 40)); tableview.ColumnHeaders.Add(new ColumnHeader("Type", 60)); tableview.ColumnHeaders.Add(new ColumnHeader("Interface", 150)); tableview.ColumnHeaders.Add(new ColumnHeader("Port", 100)); tableview.ColumnHeaders.Add(new ColumnHeader("Usage", 300)); var count = 0; foreach (var item in ServerInfo.GetTcpListeners) { count++; var knownport = KnownPorts.FirstOrDefault(p => p.Value == item.Port.ToString()); var info = knownport != null ? knownport.Usage : ""; tableview.DataRows.Add(new[] { count.ToString(), "TCP", item.Address.ToString(), item.Port.ToString(), info }); } foreach (var item in ServerInfo.GetUdpListeners) { count++; var knownport = KnownPorts.FirstOrDefault(p => p.Value == item.Port.ToString()); var info = knownport != null ? knownport.Usage : ""; tableview.DataRows.Add(new[] { count.ToString(), "UDP", item.Address.ToString(), item.Port.ToString(), info }); } tableview.Show(); } catch (Exception ex) { PopupException(ex.Message); } }
private void MenuListeningProcess_Click(object sender, EventArgs e) { try { var header = "Listening TCP/UDP Process: "; var tableview = new TableViwForm(); tableview.Tittle = header; tableview.ColumnHeaders.Add(new ColumnHeader("#", 40)); tableview.ColumnHeaders.Add(new ColumnHeader("Type", 80)); tableview.ColumnHeaders.Add(new ColumnHeader("EndPoint", 200)); tableview.ColumnHeaders.Add(new ColumnHeader("PID", 60)); tableview.ColumnHeaders.Add(new ColumnHeader("Process", 260)); var count = 0; foreach (var p in ProcessPorts.GetProcessPortMap()) { count++; tableview.DataRows.Add(new[] { count.ToString(), p.Protocol, p.EndPoint, p.ProcessId.ToString(), p.ProcessName + ".exe" }); } tableview.Show(); } catch (Exception ex) { PopupException(ex.Message); } }
private void MenuGetTcpEndPoints_Click(object sender, EventArgs e) { try { var header = "TCP EndPoints: "; var tableview = new TableViwForm(); tableview.Tittle = header; tableview.ColumnHeaders.Add(new ColumnHeader("#", 40)); tableview.ColumnHeaders.Add(new ColumnHeader("LocalEndPoint", 180)); tableview.ColumnHeaders.Add(new ColumnHeader("RemoteEndPoint", 180)); tableview.ColumnHeaders.Add(new ColumnHeader("State", 100)); tableview.ColumnHeaders.Add(new ColumnHeader("Remarks", 140)); var count = 0; foreach (var item in ServerInfo.GetTcpEndpoints) { count++; tableview.DataRows.Add(new[] { count.ToString(), item.LocalEndPoint.ToString(), item.RemoteEndPoint.ToString(), item.State.ToString() }); } tableview.Show(); } catch (Exception ex) { PopupException(ex.Message); } }
private void ToolStripMenuItemNetScanner_Click(object sender, EventArgs e) { var host = GetInputTextFromToolStrip(); var iplist = new List <NetworkScanResult>(); Task.Run(new Action(() => { try { var inputip = IPAddress.Parse(host).GetAddressBytes(); const int MaxIP = 254; for (byte i = 1; i <= MaxIP; i++) { var ip = new IPAddress(new byte[] { inputip[0], inputip[1], inputip[2], i }); iplist.Add(new NetworkScanResult { Address = ip }); } AppendEventLog(string.Format("Network Scanning with range... {0} to {1}", iplist.First().Address, iplist.Last().Address), Color.DarkGreen); var scancount = 0; var foundcount = 0; UpdateProgress(scancount * 100 / MaxIP); Parallel.ForEach(iplist, (ip) => { var pinger = new Ping(); var trycount = 3; while (trycount-- > 0) { var resp = pinger.Send(ip.Address); if (resp.Status == IPStatus.Success) { foundcount++; ip.IsAlive = true; ip.RespTime = resp.RoundtripTime; AppendEventLog(string.Format("{0:00}. {1} \t{2}ms", foundcount.ToString(), ip.Address, ip.RespTime)); break; } } scancount++; UpdateProgress(scancount * 100 / MaxIP); }); AppendEventLog("Network Scanning Completed\r", Color.DarkGreen); var tableview = new TableViwForm(); tableview.Tittle = string.Format("Network Scan Result... {0} to {1}", iplist.First().Address, iplist.Last().Address); tableview.ColumnHeaders.Add(new ColumnHeader("#", 40)); tableview.ColumnHeaders.Add(new ColumnHeader("Host", 120)); tableview.ColumnHeaders.Add(new ColumnHeader("Response Time", 100)); tableview.ColumnHeaders.Add(new ColumnHeader("Remarks", 300)); var count = 0; foreach (var ip in iplist.Where(p => p.IsAlive == true)) { count++; tableview.DataRows.Add(new[] { count.ToString(), ip.Address.ToString(), ip.RespTime.ToString() }); } Invoke(new Action(() => { tableview.Show(); })); } catch (Exception ex) { PopupException(ex.Message); } })); }
private void ToolStripMenuItemPortScanner_Click(object sender, EventArgs e) { var host = GetInputTextFromToolStrip(); Task.Run(new Action(() => { try { var portlist = new List <PortScanResult>(); const int MinPort = 1; const int MaxPort = 100; for (int i = MinPort; i <= MaxPort; i++) { portlist.Add(new PortScanResult { Value = i }); } AppendEventLog(string.Format("Starting TCP Port Scanning host... {0} from {1} to {2}", host, portlist.First().Value, portlist.Last().Value), Color.DarkGreen); var scancount = 0; var foundcount = 0; UpdateProgress(scancount * 100 / portlist.Count); Parallel.ForEach(portlist, (port) => { var socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); try { // ToDo: do the scan without connect socket.Connect(host, port.Value); foundcount++; port.IsOpen = true; var knownport = KnownPorts.FirstOrDefault(p => p.Value == port.Value.ToString()); port.Info = knownport != null ? knownport.Usage : ""; AppendEventLog(string.Format("{0:00}. {1} \t{2}", foundcount.ToString(), port.Value, port.Info)); socket.Close(); } catch { } scancount++; UpdateProgress(scancount * 100 / portlist.Count); }); AppendEventLog("Port Scanning Completed\r", Color.DarkGreen); var tableview = new TableViwForm(); tableview.Tittle = string.Format("TCP Port Scan Result... {0} from {1} to {2}", host, portlist.First().Value, portlist.Last().Value); tableview.ColumnHeaders.Add(new ColumnHeader("#", 40)); tableview.ColumnHeaders.Add(new ColumnHeader("Type", 60)); tableview.ColumnHeaders.Add(new ColumnHeader("Port", 100)); tableview.ColumnHeaders.Add(new ColumnHeader("Usage", 350)); var count = 0; foreach (var port in portlist.Where(p => p.IsOpen == true)) { count++; tableview.DataRows.Add(new[] { count.ToString(), "TCP", port.Value.ToString(), port.Info }); } Invoke(new Action(() => { tableview.Show(); })); } catch (Exception ex) { PopupException(ex.Message); } })); }