-> PortScanner added

This commit is contained in:
Kevin Krüger
2022-01-18 09:14:22 +01:00
parent f7b63cb8e1
commit a07655faed
18 changed files with 1301 additions and 9 deletions

View File

@@ -0,0 +1,67 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace PortScanner
{
static class InputChecker
{
// Check that a hostname string is valid
public static bool IsValidHostname(string hostname)
{
return hostname != "";
}
// Check that a port is valid - returns -1 if port is invalid
public static int ParsePort(string portString)
{
int port;
try
{
port = Int32.Parse(portString);
}
// If any exception occurs, the string was not a proper port
catch (Exception)
{
return -1;
}
if (port < 1 || port > 65535)
{
return -1;
}
return port;
}
// Check that timeout combobox user input is valid...
// Accepted formats: [time] ms, [time]ms, [time]
public static int ParseTimeout(string timeoutString)
{
// The regex that is used for matching the input against
var regex = new Regex(@"^\d*\s*(ms)?$");
// Try matching the user input
if (!regex.IsMatch(timeoutString))
{
return -1;
}
// Slice off the "ms" part of the string
timeoutString = Regex.Match(timeoutString, @"\d+").Value;
int timeout = Int32.Parse(timeoutString);
// Doesn't work too well with a very short timeout period
if (timeout < 250 || timeout > 20000)
{
return -1;
}
return timeout;
}
}
}