Хочу сделать анализатор трафика, но ничего не выходит, нашёл некоторые сурсы, попробовал запустить, но они не работают
возможно это из-за того, что я выбрал неправильное устройство, но у меня не выводится информация ни об одном пакете. Может вы как-то поможете сделать анализатор трафика?
Суть его в том, что он должен отлавливать весь трафик, что есть на компе, а потом классифицировать его, т.е. распознавать, где идёт какой-либо запрос телеграма, ютуба, какой-либо соц.сети и тд. Помогите, пожалуйста
C#:
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using PacketDotNet;
using SharpPcap;
using SharpPcap.WinPcap;
namespace Traff
{
public partial class Form1 : Form
{
CaptureDeviceList dList;
ICaptureDevice device;
Thread thread;
static ICaptureDevice captureDevice;
static int i = 0;
static string s = "";
public Form1()
{
InitializeComponent();
}
public void richTextBox1_TextChanged(object sender, EventArgs e)
{
}
public void capture()
{
try
{
CaptureDeviceList deviceList = CaptureDeviceList.Instance;
// выбираем первое устройство в спсике (для примера)
int z = 0;
foreach(var dev in deviceList)
{
//richTextBox1.AppendText(dev.Name);
//MessageBox.Show(dev.Name);
}
captureDevice = deviceList[2];
// регистрируем событие, которое срабатывает, когда пришел новый пакет
captureDevice.OnPacketArrival += new PacketArrivalEventHandler(Program_OnPacketArrival);
// открываем в режиме promiscuous, поддерживается также нормальный режим
captureDevice.Open(DeviceMode.Promiscuous, 1000);
// начинаем захват пакетов
captureDevice.StartCapture();
}
catch (ThreadAbortException)
{
Thread.ResetAbort();
captureDevice.Close();
captureDevice.OnPacketArrival -= new PacketArrivalEventHandler(Program_OnPacketArrival);
return;
}
}
public void Program_OnPacketArrival(object sender, CaptureEventArgs e)
{
if (i < 2)
{
// парсинг всего пакета
Packet packet = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
var ip = packet.Extract<PacketDotNet.IPPacket>();
if (ip != null)
{
richTextBox1.AppendText("Original IP packet: " + ip.ToString());
MessageBox.Show("Original IP packet: " + ip.ToString());
}
var tcp = packet.Extract<PacketDotNet.TcpPacket>();
if (tcp != null)
{
richTextBox1.AppendText("Original TCP packet: " + tcp.ToString());
MessageBox.Show("Original TCP packet: " + tcp.ToString());
}
richTextBox1.AppendText("------------------------------");
}
else
{
captureDevice.Close();
return;
}
i++;
}
private void button1_Click(object sender, EventArgs e)
{
capture();
}
}
}
возможно это из-за того, что я выбрал неправильное устройство, но у меня не выводится информация ни об одном пакете. Может вы как-то поможете сделать анализатор трафика?
Суть его в том, что он должен отлавливать весь трафик, что есть на компе, а потом классифицировать его, т.е. распознавать, где идёт какой-либо запрос телеграма, ютуба, какой-либо соц.сети и тд. Помогите, пожалуйста