C#入门小程序ZHP_07.doc_第1页
C#入门小程序ZHP_07.doc_第2页
C#入门小程序ZHP_07.doc_第3页
C#入门小程序ZHP_07.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C#入门小程序集锦七这个集锦来源于我开始接触C#时所分析过的一些小程序和一些自己设计的小程序,我是从.NET Framework v2.0 SDK开始的,所以一开始的程序各个.NET版本都能够运行。提醒:一是编程环境往往具有向下兼容性,所以前面程序中的某些注释说明在.NET2.0中是正确的,而在v4.0等版本却是错误的,例如_03中“接口的属性或索引器如下:必须带有至少一个访问器”在.NET4.0中就可以不带访问器;二是这个集锦的作用并不是帮助学习,而是为了总结和查询的,所以内容上并不存在连续性,程序时简时杂,注释也不是为了说明,而是为了提醒。综上所述,请各位按自己的需要查看集锦文档。抓包库SharpPcap的简单应用之一:/SharpPcap应用:将WinPcap包装后的C#抓包库。/SharpPcap只有抓取和发送packet的能力,而没有阻断的功能。/运行环境:.NET4.0 、 SharpPcap4.2(引用)using System;using System.Collections.Generic;using System.Linq;using System.Text;using SharpPcap;using SharpPcap.LibPcap;using SharpPcap.WinPcap;using SharpPcap.AirPcap;using System.Net;namespace ConsoleApplication1 class Program static void Main(string args) /显示当前SharpPcap版本号,没意义。 string str = SharpPcap.Version.VersionString; Console.WriteLine(该SharpPcap的版本号为:0,str); /获取并显示抓包device的列表,然后从列表中选择想要用于抓取packet的device var devices = CaptureDeviceList.Instance; if(devices.Count 1t2,i,dev.Name,dev.Description); i+; Console.WriteLine(nPlease choose a device for sending the ARP request;); string s = Console.ReadLine(); i = int.Parse(s); var device = devicesi; /ARP类获取对应IP的MAC地址,测试无效 /*IPAddress ip; while(true) Console.WriteLine(-Please enter IP address to be resolved by ARP:); if(IPAddress.TryParse(Console.ReadLine(),out ip) break; Console.WriteLine(Bad IP address format,please try again.); ARP arper = new ARP(device); var resolvedMacAddress = arper.Resolve(ip); if (resolvedMacAddress = null) Console.WriteLine(Timeout,no mac address found for ip of + ip);/为什么总是这个 else Console.WriteLine(ip+is at: +arper.Resolve(ip); Console.WriteLine(ENTER); Console.ReadLine();*/ /OnPacketArrival事件处理 device.OnPacketArrival += new PacketArrivalEventHandler(device_OnPacketArrival); /抓packet的时间间隔 int readTimeoutMilliseconds = 1000; /判定device的类型,然后开启device if(device is AirPcapDevice) var airPcap = device as AirPcapDevice; airPcap.Open(SharpPcap.WinPcap.OpenFlags.DataTransferUdp,readTimeoutMilliseconds); else if(device is WinPcapDevice) var winPcap = device as WinPcapDevice; winPcap.Open(SharpPcap.WinPcap.OpenFlags.DataTransferUdp|SharpPcap.WinPcap.OpenFlags.NoCaptureLocal,readTimeoutMilliseconds); else if (device is LibPcapLiveDevice) var livePcapDevice = device as LibPcapLiveDevice; livePcapDevice.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds); else throw new System.InvalidOperationException(unknow device type of +device.GetType().ToString(); Console.WriteLine(n-Listening on 0 1,hit Enter to exit,device.Name,device.Description); /开启抓包 device.StartCapture(); Console.ReadLine(); /抓包结束 device.StopCapture(); Console.WriteLine(-Capture stopped.); Console.WriteLine(device.Statistics.ToString(); device.Close(); Console.WriteLine(nnPlease hit Enter to exit.); Console.ReadLine(); /将抓获的packet的Date、Length public static void device_OnPacketArrival(object sender,CaptureEventArgs e) var time = e.Packet.Timeval.Date; var len =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论