Narzędzia użytkownika

Narzędzia witryny


narzedzia:packet_sniffer

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Nowa wersja
Poprzednia wersja
narzedzia:packet_sniffer [2025/05/13 13:38] – utworzono administratornarzedzia:packet_sniffer [2025/05/16 18:45] (aktualna) administrator
Linia 1: Linia 1:
-====== Packet Sniffer w C# ======+====== C#: Packet Sniffer w C# ======
  
-<code cs main.cs> +{{ :narzedzia:sniffer.exe |}}
-using System;+
  
-using System.Collections.Generic;+Poniżej jest instrukcja jak skorzystać z aplikacji
  
-using System.ComponentModel;+{{:narzedzia:pasted:20250513-134247.png}}
  
-using System.Data;+przed uruchomieniem może nam się wyświetlić takie okno,
  
-using System.Drawing;+jeżeli tak się stanie to pobieramy framework a potem idziemy dalej
  
-using System.Text;+{{:narzedzia:pasted:20250513-134303.png}}
  
-using System.Windows.Forms;+uruchamiamy aplikację z uprawnieniami administratora
  
-using System.Net.Sockets;+{{:narzedzia:pasted:20250513-134318.jpeg}}
  
-using System.Net;+następnie wybieramy adres IP na którym będziemy nasłuchiwać
  
 +{{:narzedzia:pasted:20250513-134340.png}}
  
-namespace MJsniffer+naciskamy przycisk start
  
-{+{{:narzedzia:pasted:20250513-134349.png}}
  
-public enum Protocol+a potem oglądamy ruch sieciowy aplikacja powinna wyświetlać UDP TCP DNS
  
-{ +<code csharp main.cs> 
- +using System; 
-TCP = 6, +using System.Collections.Generic; 
- +using System.ComponentModel; 
-UDP = 17, +using System.Data; 
- +using System.Drawing; 
-Unknown = -1 +using System.Text; 
- +using System.Windows.Forms; 
-}+using System.Net.Sockets
- +using System.Net;
- +
-public partial class MJsnifferForm : Form+
  
 +namespace MJsniffer
 { {
 +    public enum Protocol
 +    {
 +        TCP = 6,
 +        UDP = 17,
 +        Unknown = -1
 +    };
  
-//label1.Text string.Parse(cmbInterfaces.Text) ;+    public partial class MJsnifferForm : Form 
 +    { 
 +        private Socket mainSocket; // Socket który przechwytuje wszystkie pakiety 
 +        private byte[] byteData new byte[4096]; 
 +        private bool bContinueCapturing = false; // flaga która sprawdza czy pakiety zostały złapane poprawnie 
 +        private delegate void AddTreeNode(TreeNode node);
  
-private Socket mainSocket//Socket który przechwytuje wszystkie pakiety+        public MJsnifferForm() 
 +        { 
 +            InitializeComponent(); 
 +        }
  
-private byte[] byteData new byte[4096];+        private void btnStart_Click(object sender, EventArgs e) 
 +        { 
 +            if (cmbInterfaces.Text == ""
 +            { 
 +                MessageBox.Show("Select an Interface to capture the packets.", "Sniffer", 
 +                    MessageBoxButtons.OK, MessageBoxIcon.Error); 
 +                return; 
 +            }
  
-private bool bContinueCapturing = false//flaga która sprawdza czy pakiety zostaly zlapane poprawnie+            try 
 +            { 
 +                if (!bContinueCapturing
 +                { 
 +                    btnStart.Text "&Stop"; 
 +                    bContinueCapturing = true;
  
 +                    mainSocket = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
 +                    mainSocket.Bind(new IPEndPoint(IPAddress.Parse(cmbInterfaces.Text), 0));
  
-private delegate void AddTreeNode(TreeNode node);+                    mainSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.HeaderIncluded, true);
  
 +                    byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
 +                    byte[] byOut = new byte[4] { 1, 0, 0, 0 };
  
-public MJsnifferForm()+                    mainSocket.IOControl(IOControlCode.ReceiveAll, byTrue, byOut);
  
-{+                    mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, 
 +                        new AsyncCallback(OnReceive), null); 
 +                } 
 +                else 
 +                { 
 +                    btnStart.Text = "&Start"; 
 +                    bContinueCapturing = false; 
 +                    mainSocket.Close(); 
 +                } 
 +            } 
 +            catch (Exception ex) 
 +            { 
 +                MessageBox.Show(ex.Message, "Sniffer", MessageBoxButtons.OK, MessageBoxIcon.Error); 
 +            } 
 +        }
  
-InitializeComponent();+        private void OnReceive(IAsyncResult ar) 
 +        { 
 +            try 
 +            { 
 +                int nReceived = mainSocket.EndReceive(ar); 
 +                ParseData(byteData, nReceived);
  
-}+                if (bContinueCapturing) 
 +                { 
 +                    byteData = new byte[4096]; 
 +                    mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, 
 +                        new AsyncCallback(OnReceive), null); 
 +                } 
 +            } 
 +            catch (ObjectDisposedException) { } 
 +            catch (Exception ex) 
 +            { 
 +                MessageBox.Show(ex.Message, "Sniffer", MessageBoxButtons.OK, MessageBoxIcon.Error); 
 +            } 
 +        }
  
 +        private void ParseData(byte[] byteData, int nReceived)
 +        {
 +            TreeNode rootNode = new TreeNode();
 +            IPHeader ipHeader = new IPHeader(byteData, nReceived);
 +            TreeNode ipNode = MakeIPTreeNode(ipHeader);
 +            rootNode.Nodes.Add(ipNode);
  
-private void btnStart_Click(object senderEventArgs e// przy nacisnieciu przycisku+            switch (ipHeader.ProtocolType) 
 +            { 
 +                case Protocol.TCP: 
 +                    TCPHeader tcpHeader = new TCPHeader(ipHeader.DataipHeader.MessageLength); 
 +                    TreeNode tcpNode = MakeTCPTreeNode(tcpHeader); 
 +                    rootNode.Nodes.Add(tcpNode);
  
-{+                    if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53"
 +                    { 
 +                        TreeNode dnsNode = MakeDNSTreeNode(tcpHeader.Data, (int)tcpHeader.MessageLength); 
 +                        rootNode.Nodes.Add(dnsNode); 
 +                    } 
 +                    break;
  
-if (cmbInterfaces.Text == "")+                case Protocol.UDP: 
 +                    UDPHeader udpHeader = new UDPHeader(ipHeader.Data, (int)ipHeader.MessageLength); 
 +                    TreeNode udpNode MakeUDPTreeNode(udpHeader); 
 +                    rootNode.Nodes.Add(udpNode);
  
-{+                    if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53"
 +                    { 
 +                        TreeNode dnsNode = MakeDNSTreeNode(udpHeader.Data, 
 +                            Convert.ToInt32(udpHeader.Length) - 8); 
 +                        rootNode.Nodes.Add(dnsNode); 
 +                    } 
 +                    break;
  
-MessageBox.Show("Select an Interface to capture the packets.", "Sniffer",+                case Protocol.Unknown: 
 +                    break; 
 +            }
  
-MessageBoxButtons.OK, MessageBoxIcon.Error);+            AddTreeNode addTreeNode = new AddTreeNode(OnAddTreeNode); 
 +            rootNode.Text = ipHeader.SourceAddress.ToString() + " - " + ipHeader.DestinationAddress.ToString(); 
 +            treeView.Invoke(addTreeNode, new object[] { rootNode }); 
 +        }
  
-return;+        private TreeNode MakeIPTreeNode(IPHeader ipHeader) 
 +        { 
 +            TreeNode ipNode = new TreeNode("IP"); 
 +            ipNode.Nodes.Add("Ver: " + ipHeader.Version); 
 +            ipNode.Nodes.Add("Header Length: " + ipHeader.HeaderLength); 
 +            ipNode.Nodes.Add("Differentiated Services: " + ipHeader.DifferentiatedServices); 
 +            ipNode.Nodes.Add("Total Length: " + ipHeader.TotalLength); 
 +            ipNode.Nodes.Add("Identification: " + ipHeader.Identification); 
 +            ipNode.Nodes.Add("Flags: " + ipHeader.Flags); 
 +            ipNode.Nodes.Add("Fragmentation Offset: " + ipHeader.FragmentationOffset); 
 +            ipNode.Nodes.Add("Time to live: " + ipHeader.TTL);
  
-}+            string protocolStr = ipHeader.ProtocolType switch 
 +            { 
 +                Protocol.TCP => "TCP", 
 +                Protocol.UDP => "UDP", 
 +                _ => "Unknown" 
 +            }
 +            ipNode.Nodes.Add("Protocol: " + protocolStr);
  
-try+            ipNode.Nodes.Add("Checksum: " + ipHeader.Checksum); 
 +            ipNode.Nodes.Add("Source: " + ipHeader.SourceAddress.ToString()); 
 +            ipNode.Nodes.Add("Destination: " + ipHeader.DestinationAddress.ToString());
  
-{+            return ipNode; 
 +        }
  
-if (!bContinueCapturing)+        private TreeNode MakeTCPTreeNode(TCPHeader tcpHeader) 
 +        { 
 +            TreeNode tcpNode = new TreeNode("TCP"); 
 +            tcpNode.Nodes.Add("Source Port: " + tcpHeader.SourcePort); 
 +            tcpNode.Nodes.Add("Destination Port: " + tcpHeader.DestinationPort); 
 +            tcpNode.Nodes.Add("Sequence Number: " + tcpHeader.SequenceNumber);
  
-{+            if (!string.IsNullOrEmpty(tcpHeader.AcknowledgementNumber)) 
 +                tcpNode.Nodes.Add("Acknowledgement Number: " + tcpHeader.AcknowledgementNumber);
  
-//Rozpocznij przechwytywanie+            tcpNode.Nodes.Add("Header Length: " + tcpHeader.HeaderLength); 
 +            tcpNode.Nodes.Add("Flags: " + tcpHeader.Flags); 
 +            tcpNode.Nodes.Add("Window Size: " + tcpHeader.WindowSize); 
 +            tcpNode.Nodes.Add("Checksum: " + tcpHeader.Checksum);
  
 +            if (!string.IsNullOrEmpty(tcpHeader.UrgentPointer))
 +                tcpNode.Nodes.Add("Urgent Pointer: " + tcpHeader.UrgentPointer);
  
-btnStart.Text = "&Stop";+            return tcpNode; 
 +        }
  
 +        private TreeNode MakeUDPTreeNode(UDPHeader udpHeader)
 +        {
 +            TreeNode udpNode = new TreeNode("UDP");
 +            udpNode.Nodes.Add("Source Port: " + udpHeader.SourcePort);
 +            udpNode.Nodes.Add("Destination Port: " + udpHeader.DestinationPort);
 +            udpNode.Nodes.Add("Length: " + udpHeader.Length);
 +            udpNode.Nodes.Add("Checksum: " + udpHeader.Checksum);
 +            return udpNode;
 +        }
  
-bContinueCapturing true;+        private TreeNode MakeDNSTreeNode(byte[] byteData, int nLength) 
 +        { 
 +            DNSHeader dnsHeader new DNSHeader(byteData, nLength); 
 +            TreeNode dnsNode = new TreeNode("DNS"); 
 +            dnsNode.Nodes.Add("Identification: " + dnsHeader.Identification); 
 +            dnsNode.Nodes.Add("Flags: " + dnsHeader.Flags); 
 +            dnsNode.Nodes.Add("Questions: " + dnsHeader.TotalQuestions); 
 +            dnsNode.Nodes.Add("Answer RRs: " + dnsHeader.TotalAnswerRRs); 
 +            dnsNode.Nodes.Add("Authority RRs: " + dnsHeader.TotalAuthorityRRs); 
 +            dnsNode.Nodes.Add("Additional RRs: " + dnsHeader.TotalAdditionalRRs); 
 +            return dnsNode; 
 +        }
  
 +        private void OnAddTreeNode(TreeNode node)
 +        {
 +            treeView.Nodes.Add(node);
 +        }
  
-//zeby przechwytywaæ pakiety z socketu musi to byæ tzw raw socket,+        private void SnifferForm_Load(object senderEventArgs e) 
 +        { 
 +            string strIP = null; 
 +            IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
  
-//w tym przypadku potrzebujemy interfejsu który ma adres IP jest w podsieci i mozemy //przechwytywac z niego tylko dane z warstwy 3+            if (hostEntry.AddressList.Length > 0) 
 +            { 
 +                foreach (IPAddress ip in hostEntry.AddressList) 
 +                { 
 +                    strIP = ip.ToString(); 
 +                    cmbInterfaces.Items.Add(strIP); 
 +                } 
 +            } 
 +        }
  
 +        private void SnifferForm_FormClosing(object sender, FormClosingEventArgs e)
 +        {
 +            if (bContinueCapturing)
 +            {
 +                mainSocket.Close();
 +            }
 +        }
  
-mainSocket = new Socket(AddressFamily.InterNetwork, +        private void treeView_AfterSelect(object senderTreeViewEventArgs e) { }
- +
-SocketType.Raw, ProtocolType.IP)+
- +
-//podwi¹zanie socketa do konretnego adresu +
- +
-mainSocket.Bind(new IPEndPoint(IPAddress.Parse(cmbInterfaces.Text), 0)); +
- +
- +
-//kilka opcji +
- +
-mainSocket.SetSocketOption(SocketOptionLevel.IP, //szuka pakietów IP +
- +
-SocketOptionName.HeaderIncluded, //szuka naglowka +
- +
-true); //potwierdzenie ze to chcemy +
- +
- +
-byte[] byTrue = new byte[4] {1, 0, 0, 0}+
- +
-byte[] byOut = new byte[4]{1, 0, 0, 0}; //przechwytywanie wychodzacych pakietów +
- +
- +
-//Socket.IOControl jest to biblioteka która dziala podobnie do biblioteki WinSock przez co //mozna latwiej programowac +
- +
-mainSocket.IOControl(IOControlCode.ReceiveAll, +
- +
-byTrue, +
- +
-byOut); +
- +
- +
-//Odbieranie pakietów asynchronicznie +
- +
-mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, +
- +
-new AsyncCallback(OnReceive), null);+
  
 +        private void label1_Click(object sender, EventArgs e) { }
 +    }
 } }
  
-else 
- 
-{ 
- 
-btnStart.Text = "&Start"; 
- 
-bContinueCapturing = false; 
- 
-//po zakonczeniu przechwytywania zamknij socket 
- 
-mainSocket.Close (); 
- 
-} 
- 
-} 
- 
-catch (Exception ex) //je¿eli bed¹ jakieœ b³êdy to wyœwietlij okienko 
- 
-{ 
- 
-MessageBox.Show(ex.Message, "Sniffer", MessageBoxButtons.OK, MessageBoxIcon.Error); 
- 
-} 
- 
-} 
- 
- 
-private void OnReceive(IAsyncResult ar) 
- 
-{ 
- 
-try 
- 
-{ 
- 
-int nReceived = mainSocket.EndReceive(ar); 
- 
- 
-//Analiza przychodzacych bajtów 
- 
-ParseData (byteData, nReceived); 
- 
- 
-if (bContinueCapturing) 
- 
-{ 
- 
-byteData = new byte[4096]; 
- 
-//kolejne przyzwanie begin receive zebyœmy nie przerywali sluchania 
- 
-mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None, 
- 
-new AsyncCallback(OnReceive), null); 
- 
-} 
- 
-} 
- 
-catch (ObjectDisposedException) 
- 
-{ 
- 
-} 
- 
-catch (Exception ex) 
- 
-{ 
- 
-MessageBox.Show(ex.Message, "sniffer", MessageBoxButtons.OK, MessageBoxIcon.Error); 
- 
-} 
- 
-} 
- 
- 
-private void ParseData(byte[] byteData, int nReceived) 
- 
-{ 
- 
-TreeNode rootNode = new TreeNode(); 
- 
- 
-//wszystkie protokoly sa enkasulowane w pakiecie IP 
- 
-//wiec zaczynamy parsowac header IP 
- 
-IPHeader ipHeader = new IPHeader(byteData, nReceived); 
- 
- 
-TreeNode ipNode = MakeIPTreeNode(ipHeader); 
- 
-rootNode.Nodes.Add(ipNode); 
- 
- 
-//potem parsujemy pole dane datagramu ip 
- 
-switch (ipHeader.ProtocolType) 
- 
-{ 
- 
-case Protocol.TCP: 
- 
- 
-TCPHeader tcpHeader = new TCPHeader(ipHeader.Data, //IPHeader.Data przechowuje //dane z pakietu IP 
- 
-ipHeader.MessageLength);//dlugosc sekcji danych 
- 
- 
-TreeNode tcpNode = MakeTCPTreeNode(tcpHeader); 
- 
- 
-rootNode.Nodes.Add(tcpNode); 
- 
- 
-//jezeli port to 53 to mamy do czynienia z DNSem 
- 
-if (tcpHeader.DestinationPort == "53" || tcpHeader.SourcePort == "53") 
- 
-{ 
- 
-TreeNode dnsNode = MakeDNSTreeNode(tcpHeader.Data, (int)tcpHeader.MessageLength); 
- 
-rootNode.Nodes.Add(dnsNode); 
- 
-} 
- 
- 
-break; 
- 
- 
-case Protocol.UDP: 
- 
- 
-UDPHeader udpHeader = new UDPHeader(ipHeader.Data, //IPHeader.Data przechowuje //dane z pakietu IP 
- 
-(int)ipHeader.MessageLength);//dlugosc sekcji danych 
- 
- 
-TreeNode udpNode = MakeUDPTreeNode(udpHeader); 
- 
- 
-rootNode.Nodes.Add(udpNode); 
- 
- 
-//jezeli port to 53 to mamy do czynienia z DNSem 
- 
-if (udpHeader.DestinationPort == "53" || udpHeader.SourcePort == "53") 
- 
-{ 
- 
- 
-TreeNode dnsNode = MakeDNSTreeNode(udpHeader.Data, 
- 
-//dlugosc naglowka UDP zawsze 8 bajtów wiec odejmujemy //to od 
- 
-//dlugosci calych danych w pakiecie 
- 
-Convert.ToInt32(udpHeader.Length) - 8); 
- 
-rootNode.Nodes.Add(dnsNode); 
- 
-} 
- 
- 
-break; 
- 
- 
-case Protocol.Unknown: 
- 
-break; 
- 
-} 
- 
- 
-AddTreeNode addTreeNode = new AddTreeNode(OnAddTreeNode); 
- 
- 
-rootNode.Text = ipHeader.SourceAddress.ToString() + "-" + 
- 
-ipHeader.DestinationAddress.ToString(); 
- 
- 
-//to powoduje te dane sa wyswietlane w postaci takiego wielo zlozonego drzewka 
- 
-treeView.Invoke(addTreeNode, new object[] {rootNode}); 
- 
-} 
- 
- 
-//fukcja która zwraca dane z pakietu IP w formie drzewka 
- 
-private TreeNode MakeIPTreeNode(IPHeader ipHeader) 
- 
-{ 
- 
-TreeNode ipNode = new TreeNode(); 
- 
- 
-ipNode.Text = "IP"; 
- 
-ipNode.Nodes.Add ("Ver: " + ipHeader.Version); 
- 
-ipNode.Nodes.Add ("Header Length: " + ipHeader.HeaderLength); 
- 
-ipNode.Nodes.Add ("Differntiated Services: " + ipHeader.DifferentiatedServices); 
- 
-ipNode.Nodes.Add("Total Length: " + ipHeader.TotalLength); 
- 
-ipNode.Nodes.Add("Identification: " + ipHeader.Identification); 
- 
-ipNode.Nodes.Add("Flags: " + ipHeader.Flags); 
- 
-ipNode.Nodes.Add("Fragmentation Offset: " + ipHeader.FragmentationOffset); 
- 
-ipNode.Nodes.Add("Time to live: " + ipHeader.TTL); 
- 
-switch (ipHeader.ProtocolType) 
- 
-{ 
- 
-case Protocol.TCP: 
- 
-ipNode.Nodes.Add ("Protocol: " + "TCP"); 
- 
-break; 
- 
-case Protocol.UDP: 
- 
-ipNode.Nodes.Add ("Protocol: " + "UDP"); 
- 
-break; 
- 
-case Protocol.Unknown: 
- 
-ipNode.Nodes.Add ("Protocol: " + "Unknown"); 
- 
-break; 
- 
-} 
- 
-ipNode.Nodes.Add("Checksum: " + ipHeader.Checksum); 
- 
-ipNode.Nodes.Add("Source: " + ipHeader.SourceAddress.ToString()); 
- 
-ipNode.Nodes.Add("Destination: " + ipHeader.DestinationAddress.ToString()); 
- 
- 
-return ipNode; 
- 
-} 
- 
- 
-//fukcja która zwraca dane z pakietu TCP w formie drzewka 
- 
-private TreeNode MakeTCPTreeNode(TCPHeader tcpHeader) 
- 
-{ 
- 
-TreeNode tcpNode = new TreeNode(); 
- 
- 
-tcpNode.Text = "TCP"; 
- 
- 
-tcpNode.Nodes.Add("Source Port: " + tcpHeader.SourcePort); 
- 
-tcpNode.Nodes.Add("Destination Port: " + tcpHeader.DestinationPort); 
- 
-tcpNode.Nodes.Add("Sequence Number: " + tcpHeader.SequenceNumber); 
- 
- 
-if (tcpHeader.AcknowledgementNumber != "") 
- 
-tcpNode.Nodes.Add("Acknowledgement Number: " + tcpHeader.AcknowledgementNumber); 
- 
- 
-tcpNode.Nodes.Add("Header Length: " + tcpHeader.HeaderLength); 
- 
-tcpNode.Nodes.Add("Flags: " + tcpHeader.Flags); 
- 
-tcpNode.Nodes.Add("Window Size: " + tcpHeader.WindowSize); 
- 
-tcpNode.Nodes.Add("Checksum: " + tcpHeader.Checksum); 
- 
- 
-if (tcpHeader.UrgentPointer != "") 
- 
-tcpNode.Nodes.Add("Urgent Pointer: " + tcpHeader.UrgentPointer); 
- 
- 
-return tcpNode; 
- 
-} 
- 
- 
-//funkcja która zwraca dane z pakietu UDP w formie drzewka 
- 
-private TreeNode MakeUDPTreeNode(UDPHeader udpHeader) 
- 
-{ 
- 
-TreeNode udpNode = new TreeNode(); 
- 
- 
-udpNode.Text = "UDP"; 
- 
-udpNode.Nodes.Add("Source Port: " + udpHeader.SourcePort); 
- 
-udpNode.Nodes.Add("Destination Port: " + udpHeader.DestinationPort); 
- 
-udpNode.Nodes.Add("Length: " + udpHeader.Length); 
- 
-udpNode.Nodes.Add("Checksum: " + udpHeader.Checksum); 
- 
-return udpNode; 
- 
-} 
- 
- 
-//funkcja która zwraca dane z pakietu DNS w formie drzewka 
- 
-private TreeNode MakeDNSTreeNode(byte[] byteData, int nLength) 
- 
-{ 
- 
-DNSHeader dnsHeader = new DNSHeader(byteData, nLength); 
- 
- 
-TreeNode dnsNode = new TreeNode(); 
- 
- 
-dnsNode.Text = "DNS"; 
- 
-dnsNode.Nodes.Add("Identification: " + dnsHeader.Identification); 
- 
-dnsNode.Nodes.Add("Flags: " + dnsHeader.Flags); 
- 
-dnsNode.Nodes.Add("Questions: " + dnsHeader.TotalQuestions); 
- 
-dnsNode.Nodes.Add("Answer RRs: " + dnsHeader.TotalAnswerRRs); 
- 
-dnsNode.Nodes.Add("Authority RRs: " + dnsHeader.TotalAuthorityRRs); 
- 
-dnsNode.Nodes.Add("Additional RRs: " + dnsHeader.TotalAdditionalRRs); 
- 
- 
-return dnsNode; 
- 
-} 
- 
- 
-private void OnAddTreeNode(TreeNode node) 
- 
-{ 
- 
-treeView.Nodes.Add(node); 
- 
-} 
- 
- 
-private void SnifferForm_Load(object sender, EventArgs e) 
- 
-{ 
- 
-string strIP = null; 
- 
- 
-IPHostEntry HosyEntry = Dns.GetHostEntry((Dns.GetHostName())); 
- 
-if (HosyEntry.AddressList.Length > 0) 
- 
-{ 
- 
-foreach (IPAddress ip in HosyEntry.AddressList) 
- 
-{ 
- 
-strIP = ip.ToString(); 
- 
-cmbInterfaces.Items.Add(strIP); 
- 
-} 
- 
-} 
- 
-} 
- 
- 
-private void SnifferForm_FormClosing(object sender, FormClosingEventArgs e) 
- 
-{ 
- 
-if (bContinueCapturing) 
- 
-{ 
- 
-mainSocket.Close(); 
- 
-} 
- 
-} 
- 
- 
-private void treeView_AfterSelect(object sender, TreeViewEventArgs e) 
- 
-{ 
- 
- 
-} 
- 
- 
-private void label1_Click(object sender, EventArgs e) 
- 
-{ 
- 
- 
-} 
- 
-} 
- 
-} 
 </code> </code>
  
narzedzia/packet_sniffer.1747136302.txt.gz · ostatnio zmienione: przez administrator