通过UDP到C#的IPFIX数据 - 我可以解码数据吗?

时间:2011-04-14 16:26:52

标签: c# visual-studio-2010 udpclient

我有一个来自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?▼??? k`   & ?? _?07 ???? Q ?? E?U?j♥☻
  ♠P♣x♣►♥→♦   ☼?m?▼ - M +▼? 1♠►?
  ? ☺

提前致谢,

詹姆斯

1 个答案:

答案 0 :(得分:1)

您假设接收到的数据是ASCII格式,实际上它的结构是See here。消息包含header and data sets等。您需要根据标准评估数据,而不仅仅是直接文本转换。

这里,例如是邮件标题格式。文本转换对此无效:

<强> 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                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+