überprüfen ob Port belegt ist

  • VB.NET
  • .NET (FX) 4.0

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von Runshak.

    überprüfen ob Port belegt ist

    Hallo,

    ich möchte ein Tool schreiben, welches mir alle Ports ausgibt und mir sagt, welche davon belegt sind und welche frei sind...kann mir da jemand nen Tipp geben?

    C#-Quellcode

    1. ​namespace PortScanner
    2. {
    3. class Program
    4. {
    5. static bool stop = false;
    6. static int startPort;
    7. static int endPort;
    8. static List<int> openPorts = new List<int>();
    9. static object consoleLock = new object();
    10. static int waitingForResponses;
    11. static int maxQueriesAtOneTime = 100;
    12. static void Main(string[] args)
    13. {
    14. begin:
    15. Console.WriteLine("Enter the IP Address of the target:");
    16. string ip = Console.ReadLine();
    17. IPAddress ipAddress;
    18. if (!IPAddress.TryParse(ip, out ipAddress))
    19. goto begin;
    20. startP:
    21. Console.WriteLine("Enter the starting port to start scanning on:");
    22. string sp = Console.ReadLine();
    23. if (!int.TryParse(sp, out startPort))
    24. goto startP;
    25. endP:
    26. Console.WriteLine("Enter the end port:");
    27. string ep = Console.ReadLine();
    28. if (!int.TryParse(ep, out endPort))
    29. goto endP;
    30. Console.WriteLine("");
    31. Console.WriteLine("");
    32. Console.WriteLine("");
    33. Console.WriteLine("");
    34. Console.WriteLine("Press any key to stop scanning...");
    35. Console.WriteLine("");
    36. Console.WriteLine("");
    37. ThreadPool.QueueUserWorkItem(StartScan, ipAddress);
    38. Console.ReadKey();
    39. stop = true;
    40. Console.WriteLine("Press any key to exit...");
    41. Console.ReadKey();
    42. }
    43. static void StartScan(object o)
    44. {
    45. IPAddress ipAddress = o as IPAddress;
    46. for (int i = startPort; i < endPort; i++)
    47. {
    48. lock (consoleLock)
    49. {
    50. int top = Console.CursorTop;
    51. Console.CursorTop = 7;
    52. Console.WriteLine("Scanning port: {0} ", i);
    53. Console.CursorTop = top;
    54. }
    55. while (waitingForResponses >= maxQueriesAtOneTime)
    56. Thread.Sleep(0);
    57. if (stop)
    58. break;
    59. try
    60. {
    61. Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    62. s.BeginConnect(new IPEndPoint(ipAddress, i), EndConnect, s);
    63. Interlocked.Increment(ref waitingForResponses);
    64. }
    65. catch (Exception)
    66. {
    67. }
    68. }
    69. }
    70. static void EndConnect(IAsyncResult ar)
    71. {
    72. try
    73. {
    74. DecrementResponses();
    75. Socket s = ar.AsyncState as Socket;
    76. s.EndConnect(ar);
    77. if (s.Connected)
    78. {
    79. int openPort = Convert.ToInt32(s.RemoteEndPoint.ToString().Split(':')[1]);
    80. openPorts.Add(openPort);
    81. lock (consoleLock)
    82. {
    83. Console.WriteLine("Connected TCP on port: {0}", openPort);
    84. }
    85. s.Disconnect(true);
    86. }
    87. }
    88. catch (Exception)
    89. {
    90. }
    91. }
    92. static void IncrementResponses()
    93. {
    94. Interlocked.Increment(ref waitingForResponses);
    95. PrintWaitingForResponses();
    96. }
    97. static void DecrementResponses()
    98. {
    99. Interlocked.Decrement(ref waitingForResponses);
    100. PrintWaitingForResponses();
    101. }
    102. static void PrintWaitingForResponses()
    103. {
    104. lock (consoleLock)
    105. {
    106. int top = Console.CursorTop;
    107. Console.CursorTop = 8;
    108. Console.WriteLine("Waiting for responses from {0} sockets ", waitingForResponses);
    109. Console.CursorTop = top;
    110. }
    111. }
    112. }
    113. }


    Dazu folgendes:

    Die Legalität von Portscans ist umstritten, da sie als erste Instanz eines Eindringversuches gewertet werden können. In jedem Fall ist eine Benutzung auf eigenen Systemen legal. Unklarer ist die Rechtslage bei Portscans gegen fremde Systeme und Netzwerke. Da beispielsweise empfindliche Computer durch viele Verbindungsanfragen gestört werden können, kann dies als Angriff auf die Verfügbarkeit eines Systems gewertet und in Deutschland durch § 303b StGB(Computersabotage) bestraft werden. Das SANS-Institut bestätigt in einer Veröffentlichung ebenfalls den Zwiespalt von Portscans[1].

    Portscanner werden jedoch aktuell nicht als Computerprogramm zum Ausspähen von Daten nach § 202c StGB (Hackerparagraf) angesehen, da sie keine Sicherheitsmechanismen umgehen oder Daten abfangen.


    Quelle Wikipedia
    Du darfst mit deinen Systemen machen was du willst. Du darfst auch auf deinen Rechner Viren installieren, das ist vollkommen legal. Wie will man sonst die Sicherheit seines eigenen Systems überprüfen, wenn man keine Möglichkeit hat irgendetwas zu verwenden, was dies macht?
    Edit: sry, genau den falschen Satz übersprungen :D - unangenehme Farbe :P
    Ich wollte auch mal ne total überflüssige Signatur:
    ---Leer---

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „jvbsl“ ()

    @jvbsl hast du überhaupt den Text gelesen?? da steht doch genau das was du sagst...plus dem Zusatz, dass es nur auf dem eigenen PC oder auf welchen, bei denen man die Genehmigung hat, erlaubt ist