资源简介
C#利用SharpPcap发送以太网报文(以太网原始帧),软件基本流程:从文件读取要发送的帧内容,然后找到电脑上的以太网卡,接下来利用SharpPcap来循环发送。
vs2008工程,全部源代码,可编译和测试。
以太网帧内容可以自己构造任意的帧类型和内容;也可以使用wireshark抓包,然后利用本软件来重放。
wireshark抓包后取数据方法:在wireshark的收到的帧上点右键,选择 复制 -> 为一个HEX流,然后粘贴到一个空文件内,命名为packet.dat,这样本软件就会读取packet.dat内的内容并循环发送了。
vs2008工程,全部源代码,可编译和测试。
以太网帧内容可以自己构造任意的帧类型和内容;也可以使用wireshark抓包,然后利用本软件来重放。
wireshark抓包后取数据方法:在wireshark的收到的帧上点右键,选择 复制 -> 为一个HEX流,然后粘贴到一个空文件内,命名为packet.dat,这样本软件就会读取packet.dat内的内容并循环发送了。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpPcap.LibPcap;
using SharpPcap.WinPcap;
using SharpPcap;
using System.Net.Sockets;
using System.Collections;
using System.Net.NetworkInformation;
using System.Threading;
using System.IO;
namespace LldpSend
{
class Program
{
static string loadDevice()// 获取网卡方法
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
string netinterface = null;
try
{
foreach (NetworkInterface adap in adapters)
{
if (adap.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
Console.Out.WriteLine(“netport name:“ + adap.Name);
netinterface = adap.Name;//保存网口
//device = i;//找到的第一个网口
//deviceMac = adap.GetPhysicalAddress().ToString();//得到设备mac,后续设置iP地址等信息的时候需要
break;
}
}
}
catch (Exception ex)
{
Console.Out.WriteLine(“错误:初始化没有找到以太网卡“);
Console.Out.WriteLine(ex.Message + “\n“ + ex.StackTrace);
}
return netinterface;
}
static NetworkInterface getNetworkDevice(string name)// 获取指定网卡方法
{
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
NetworkInterface netinterface = null;
try
{
foreach (NetworkInterface adap in adapters)
{
if (adap.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
{
if (adap.Name.Equals(name))
{
Console.Out.WriteLine(“netport name:“ + adap.Name);
netinterface = adap;//保存网口
break;
}
}
}
}
catch (Exception ex)
{
Console.Out.WriteLine(“错误:初始化没有找到以太网卡,“ + ex.Message);
Console.Out.WriteLine(ex.Message + “\n“ + ex.StackTrace);
}
return netinterface;
}
static string read_packet_file(string filename)
{
//文件路径
string filePath = filename;
try
{
if (File.Exists(filePath))
{
string str = File.ReadAllText(filePath);
return str;
}
else
{
return null;
}
}
catch (Exception ex)
{
Console.WriteLine(“读取帧文件失败:“+ex.Message);
return null;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A..H. 7168 2020-01-13 12:29 LldpSend.suo
文件 8192 2020-01-13 12:50 LldpSend\bin\Debug\LldpSend.exe
文件 17920 2020-01-13 12:50 LldpSend\bin\Debug\LldpSend.pdb
文件 14328 2020-01-13 12:51 LldpSend\bin\Debug\LldpSend.vshost.exe
文件 490 2009-06-11 05:14 LldpSend\bin\Debug\LldpSend.vshost.exe.manifest
文件 723 2020-01-13 12:50 LldpSend\bin\Debug\packet.dat
文件 196608 2013-01-14 19:59 LldpSend\bin\Debug\PacketDotNet.dll
文件 476563 2013-01-14 19:59 LldpSend\bin\Debug\PacketDotNet.xm
文件 72704 2013-01-14 19:59 LldpSend\bin\Debug\SharpPcap.dll
文件 186730 2013-01-14 19:59 LldpSend\bin\Debug\SharpPcap.xm
文件 196608 2013-01-14 19:59 LldpSend\dll\PacketDotNet.dll
文件 476563 2013-01-14 19:59 LldpSend\dll\PacketDotNet.xm
文件 72704 2013-01-14 19:59 LldpSend\dll\SharpPcap.dll
文件 492 2013-01-14 19:59 LldpSend\dll\SharpPcap.dll.config
文件 186730 2013-01-14 19:59 LldpSend\dll\SharpPcap.xm
文件 2965 2020-01-13 12:47 LldpSend\LldpSend.csproj
文件 496 2020-01-13 12:51 LldpSend\obj\Debug\LldpSend.csproj.FileListAbsolute.txt
文件 8192 2020-01-13 12:50 LldpSend\obj\Debug\LldpSend.exe
文件 17920 2020-01-13 12:50 LldpSend\obj\Debug\LldpSend.pdb
文件 6033 2020-01-13 12:47 LldpSend\obj\Debug\ResolveAssemblyReference.cache
文件 7175 2020-01-13 12:50 LldpSend\Program.cs
文件 1366 2020-01-13 12:29 LldpSend\Properties\AssemblyInfo.cs
文件 914 2020-01-13 12:29 LldpSend.sln
目录 0 2020-01-13 12:29 LldpSend\obj\Debug\TempPE
目录 0 2020-01-13 12:56 LldpSend\bin\Debug
目录 0 2020-01-13 12:50 LldpSend\obj\Debug
目录 0 2020-01-13 12:29 LldpSend\bin
目录 0 2020-01-13 12:47 LldpSend\dll
目录 0 2020-01-13 12:29 LldpSend\obj
目录 0 2020-01-13 12:29 LldpSend\Properties
............此处省略4个文件信息
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
- vb调用c#编写的串口DLL文件(vb源码
评论
共有 条评论