visual studio 2010 - IPFIX数据通过UDP到c# -我可以解码数据
本文关键字:数据 解码 UDP 我可以 studio 2010 IPFIX visual | 更新日期: 2023-09-27 17:50:07
我有一个来自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年,? ? _ ? ? ? ? ? ?你吗?J♥☻
♠P′x′►♥→♦☼? M▼? M▼?1♠►吗?
? ☺
提前感谢,
詹姆斯假设接收到的数据是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 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+