Список используемых TCP-портов с использованием C # - PullRequest
1 голос
/ 18 октября 2010

Это ответ на мои вопросы.

Как перечислить связанный / используемый порт TCP в C #.Использован модифицированный код из jro

        static void ListUsedTCPPort(ref ArrayList usedPort)
    {
        IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
        IPEndPoint[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpListeners();
        IEnumerator myEnum = tcpConnInfoArray.GetEnumerator();

        while (myEnum.MoveNext())
        {
            IPEndPoint TCPInfo = (IPEndPoint)myEnum.Current;
            usedPort.Add(TCPInfo.Port);
        }
    }

Исходные вопросы. Вот как я перечисляю TCP-порт, используя C #.Это модифицированный код, который я нашел на этом форуме (точно забыл, где я его получил. Если вы являетесь первоначальным разработчиком, сообщите мне об этом и при необходимости укажите кредиты).из используемого порта TCP указан в TCPview (протокол-TCP, локальный порт).Кстати, я знаю, что этот список использовал TCP-порт в ТОЧНОЕ время его вызова.Что я сделал не так?

Ответы [ 2 ]

3 голосов
/ 18 октября 2010

Я получаю тот же результат:

alt text

Но он также показывает слушателей (ipGlobalProperties.GetActiveTcpListeners()), которые могут или не могут быть закрыты.

используя ваш пример (с дополнительными Console.WriteLine там

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Net.NetworkInformation;
using System.Collections;

namespace ConsoleApplication1 {

    static class Program {
        //List used tcp port
        static void ListAvailableTCPPort(ref ArrayList usedPort) {
            IPGlobalProperties ipGlobalProperties = IPGlobalProperties.GetIPGlobalProperties();
            TcpConnectionInformation[] tcpConnInfoArray = ipGlobalProperties.GetActiveTcpConnections();
            IEnumerator myEnum = tcpConnInfoArray.GetEnumerator();

            while (myEnum.MoveNext()) {
                TcpConnectionInformation TCPInfo = (TcpConnectionInformation)myEnum.Current;
                Console.WriteLine("Port {0} {1} {2} ", TCPInfo.LocalEndPoint, TCPInfo.RemoteEndPoint, TCPInfo.State);
                usedPort.Add(TCPInfo.LocalEndPoint.Port);
            }
        }

        public static void Main(){
            ArrayList usedPorts = new ArrayList();
            ListAvailableTCPPort(ref usedPorts);
            Console.ReadKey();
        }
    }
}
1 голос
/ 18 октября 2010

Это немного догадка, но TCPView, вероятно, также показывает TCP-порты слушателя (ipGlobalProperties.GetActiveTcpListeners ())

...