Данные IPFIX через UDP на C # - можно ли декодировать данные? - PullRequest
3 голосов
/ 14 апреля 2011

У меня есть пример кода с веб-сайта MSDN для создания прослушивателя / клиента UDP, когда я пытаюсь получить данные IPFIX / Netflow от брандмауэра и затем работать с данными, которые я получаю.Код работает и начинает получать данные, но его жаргон (см. Ниже), так что я думаю, что я не декодирую его правильно.правильный формат?

Я использую код:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

public class ConsoleApplication2
{
    private const int listenPort = 2055;

    private static void StartListener()
    {
        bool done = false;

        UdpClient listener = new UdpClient(listenPort);
        IPEndPoint groupEP = new IPEndPoint(IPAddress.Any, listenPort);

        try
        {
            while (!done)
            {
                Console.WriteLine("Waiting for broadcast");
                byte[] bytes = listener.Receive(ref groupEP);

                Console.WriteLine("Received broadcast from {0} :\n {1}\n",
                    groupEP.ToString(),
                    Encoding.ASCII.GetString(bytes, 0, bytes.Length));
            }

        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }
        finally
        {
            listener.Close();
        }
    }

    public static int Main()
    {
        StartListener();

        return 0;
    }
}

И данные, которые я получаю:

? M? ▼?«$ ▬ +?M? M? ▼ ??? k` & ?? _? 07 ???? Q ?? E? U? J ♥ ☻
♠ P ♣ x ♣ ► ♥ → ♦ ☼? M? ▼? M? ▼?1 ♠ ►?
?101

Заранее спасибо,

Джеймс

1 Ответ

1 голос
/ 14 апреля 2011

Вы предполагаете, что данные принимаются в формате ASCII, хотя на самом деле они структурированы следующим образом: См. Здесь .Сообщения имеют заголовок и наборы данных и т. Д. Вам необходимо оценивать данные на основе стандарта, а не просто преобразования текста.

Здесь, например, используется формат заголовка сообщения.Преобразование текста просто ничего не сделает с этим:

3.1.Формат заголовка сообщения

   The format of the IPFIX Message Header is shown in Figure F.

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |       Version Number          |            Length             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                           Export Time                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Sequence Number                         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Observation Domain ID                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...