資源簡介
c#寫的簡單嗅探器,查找出當前本機IP,然后偵聽所有端口,并帶有解析結果的處理。適合于剛開始學習Socket的童鞋~

代碼片段和文件信息
using?System;
using?System.Collections.Generic;
using?System.ComponentModel;
using?System.Data;
using?System.Drawing;
using?System.Linq;
using?System.Text;
using?System.Windows.Forms;
using?System.Net;
using?System.Net.Sockets;
using?SocketSniffer;
namespace?mySniffer
{
????public?partial?class?Form1?:?Form
????{
????????public?Form1()
????????{
????????????InitializeComponent();
????????????getIP();
????????}
????????private?sniffer[]?mysniffer;
????????private?List?Packets?=?new?List();
????????private?int?PacketSize;
????????IPAddress[]?hosts;
????????public?void?getIP()
????????{
????????????hosts?=?Dns.Resolve(Dns.GetHostName()).AddressList;
????????????if?(hosts.Length?==?0)
????????????????throw?new?NotSupportedException(“This?computer?does?not?have?non-loopback?interfaces?installed!“);
????????????for?(int?i?=?0;?i?????????????{
????????????????cb_ip.Items.Add(hosts[i].ToString());
????????????}
????????????cb_ip.SelectedIndex?=?0;
????????????mysniffer?=?new?sniffer[hosts.Length];
????????}
????????private?void?btn_sniff_Click(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????int?iIndex?=?this.cb_ip.SelectedIndex;
????????????????if?(mysniffer[iIndex]?==?null)
????????????????{
????????????????????mysniffer[iIndex]?=?new?sniffer(hosts[iIndex]);
????????????????}
????????????????if(mysniffer[iIndex].State?==?false)
????????????????{
????????????????????mysniffer[iIndex].NewPacket?+=?new?NewPacketEventHandler(this.OnNewPacket);
????????????????????mysniffer[iIndex].Start();
????????????????????this.btn_sniff.Text?=?“停止抓包“;
????????????????}
????????????????else
????????????????{
????????????????????mysniffer[iIndex].Stop();
????????????????????this.btn_sniff.Text?=?“抓包“;
????????????????}
????????????}
????????????catch?(Exception?ex)
????????????{
????????????????MessageBox.Show(ex.Message);
????????????}
????????}
????????private?void?OnNewPacket(sniffer?pm?Packet?p)
????????{
????????????//?把新的包添加到列表中
????????????Packets.Add(p);
????????????PacketSize?+=?p.TotalLength;
????????????this.Invoke(new?UpdatePacketList(OnUpdatePacketList)?p);
????????}
????????private?delegate?void?UpdatePacketList(Packet?p);
????????private?void?OnUpdatePacketList(Packet?p)
????????{
????????????lv_Data.Items.Add(new?ListViewItem(new?string[]?{p.Time.ToString()p.Protocol.ToString()p.SourceIP.ToString()p.DestinationIP.ToString()p.TotalLength.ToString()}));
????????????toolStripStatusLabel1.Text?=?string.Format(“共抓取了?{0}?數據包?[{1}?bytes]“?Packets.Count?PacketSize);
????????}
????????private?void?listView1_SelectedIndexChanged(object?sender?EventArgs?e)
????????{
????????????try
????????????{
????????????????int?iIndex?=?0;
????????????????for?(int?i?=?0;?i?????????????????{
????????????????????if?(lv_Data.SelectedItems[0]?==?lv_Data.Items[i])
???????????????????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????19968??2010-04-13?19:34??mySniffer\mySniffer\bin\Debug\mySniffer.exe
?????文件??????24064??2010-04-13?19:34??mySniffer\mySniffer\bin\Debug\mySniffer.pdb
?????文件??????14328??2010-04-13?19:33??mySniffer\mySniffer\bin\Debug\mySniffer.vshost.exe
?????文件???????9216??2010-04-13?19:34??mySniffer\mySniffer\bin\Debug\SocketSniffer.dll
?????文件??????19968??2010-04-13?19:34??mySniffer\mySniffer\bin\Debug\SocketSniffer.pdb
?????文件??????18944??2010-04-13?20:37??mySniffer\mySniffer\bin\Release\app.publish\Application?Files\mySniffer_1_0_0_2\mySniffer.exe.deploy
?????文件???????7939??2010-04-13?20:37??mySniffer\mySniffer\bin\Release\app.publish\Application?Files\mySniffer_1_0_0_2\mySniffer.exe.manifest
?????文件???????9216??2010-04-13?20:36??mySniffer\mySniffer\bin\Release\app.publish\Application?Files\mySniffer_1_0_0_2\SocketSniffer.dll.deploy
?????文件???????5378??2010-04-13?20:37??mySniffer\mySniffer\bin\Release\app.publish\mySniffer.application
?????文件?????555512??2010-04-13?20:37??mySniffer\mySniffer\bin\Release\app.publish\setup.exe
?????文件???????1575??2010-04-13?20:44??mySniffer\mySniffer\bin\Release\mySniffer.application
?????文件??????18944??2010-04-13?20:44??mySniffer\mySniffer\bin\Release\mySniffer.exe
?????文件???????4208??2010-04-13?20:44??mySniffer\mySniffer\bin\Release\mySniffer.exe.manifest
?????文件??????26112??2010-04-13?20:44??mySniffer\mySniffer\bin\Release\mySniffer.pdb
?????文件???????1575??2010-04-13?20:44??mySniffer\mySniffer\bin\Release\mySniffer.vshost.application
?????文件??????14328??2010-04-13?20:46??mySniffer\mySniffer\bin\Release\mySniffer.vshost.exe
?????文件???????9216??2010-04-13?20:36??mySniffer\mySniffer\bin\Release\SocketSniffer.dll
?????文件??????19968??2010-04-13?20:36??mySniffer\mySniffer\bin\Release\SocketSniffer.pdb
?????文件???????5035??2010-04-13?20:36??mySniffer\mySniffer\Form1.cs
?????文件??????10595??2010-04-13?20:36??mySniffer\mySniffer\Form1.Designer.cs
?????文件??????12746??2010-04-13?20:36??mySniffer\mySniffer\Form1.resx
?????文件???????6356??2010-04-13?20:44??mySniffer\mySniffer\mySniffer.csproj
?????文件????????547??2010-04-13?20:44??mySniffer\mySniffer\mySniffer.csproj.user
?????文件???????1716??2010-04-13?19:36??mySniffer\mySniffer\mySniffer_TemporaryKey.pfx
?????文件????????610??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.csproj.FileListAbsolute.txt
?????文件????????847??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.csproj.GenerateResource.Cache
?????文件??????19968??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.exe
?????文件???????4852??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.Form1.resources
?????文件??????24064??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.pdb
?????文件????????180??2010-04-13?19:34??mySniffer\mySniffer\obj\Debug\mySniffer.Properties.Resources.resources
............此處省略61個文件信息
評論
共有 條評論