资源简介
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 < hosts.Length; 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 < lv_Data.Items.Count; 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个文件信息
相关资源
- Socket组播通信
- c# socket 异步通信,一个服务器端和多
- C#.net4.0 采用多线程 基于Socket的聊天室
- socket转串口通讯
- C#TCP服务器和客户端Winform源代码
- C#中利用Socket实现网络语音通信
- C# Socket通讯框架,封装了Client和Serv
- Winform C#Socket异步通信
- C#版的FtpClient客户端Socket实现(可以登
- C#实现Socket编程 (异步通讯解决Tcp粘
- C#实现socket通讯
- Sockets实现服务器与多个客户端进行通
- C#通过服务端和GPRS通讯
- c# scoket异步通信代码
- C# Socket 分包传送数据
- C#实现简单的Socket文件传输
- c#文件发送一个服务器多个客户端
- C#socket通信调用Brother打印机客户端和
- 使用SOCKET实现TCP-IP协议的通讯最好的
- C# Socket通讯DEMO
- C# socket通信允许发送消息,图片,与
- C# Socket编程入门
- C#使用Socket实现服务器与多个客户端通
- c#基于TCP协议的Socket通信完整实现多人
- C# Socket+UDP通讯和文件传输
- TCP性能测试工具和C#高性能异步Socke
- C#版Socket通信含服务端、客户端、We
- C# 基于SMTP协议和SOCKET发送邮件及附件
- 局域网文件传输 Socket编程 C#代码
- C# 异步Socket 多人聊天室完整源码
评论
共有 条评论