Пример #1
0
 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);
     }
 }
Пример #2
0
 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);
     }
 }
Пример #3
0
 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);
     }
 }
Пример #4
0
        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);
                }
            }));
        }
Пример #5
0
        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);
                }
            }));
        }