如何用C#实现 ARP packets (一个42字节的数据结构体)的直接发送?正确给出解决方案者再送100分.
解决方案 »
- 本地读取文件到列表里,如何分页显示
- winform datagridview 性别显示问题??
- C#与数据库交互
- 牛人们看过来...FarPoint中comboBox的一个问题...急,在线等...!!!!
- 受不了了,我下的MSDN2005中文版的翻译真是够烂的.哪里有MSDN2005翻译的比较好的版本下载?
- c#里字符串怎么转成double?另外有没有像vc里面CString这样的类?
- 如何在LAN内检测到所连接的测试仪器
- 就说c#!!!
- 紧急求救,关于从函数中退出的问题,请各位大虾指点
- c# 操作Word文档:服务器出现意外情况。 (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT))"
- asp.net程序如何读取客户端的Excel文件,急...
- dataGrid问题
found the MSDN doc has a bug(!?) : 'PhyAddrLen' is both [in, out].This works for me:// =================================================================================================
using System.Net;
using System.Runtime.InteropServices;
....
[DllImport("iphlpapi.dll", ExactSpelling=true)]
public static extern int SendARP( int DestIP, int SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen );
....
IPAddress addr = IPAddress.Parse("192.168.x.y"); // TODO: real ip addressbyte[] ab = new byte[6];
int len = ab.Length;
int r = SendARP( (int) addr.Address, 0, ab, ref len );
string mac = BitConverter.ToString( ab, 0, 6 );
// =========================================================================================--
Thomas Scheidegger - MVP .NET - 'NETMaster'
http://www.cetus-links.org/oo_dotnet.html - http://dnetmaster.net/
要自定义ARP包,必须写专用的网卡驱动
winpcap就是这样的一个驱动和库C#不可能直接做到这些如果你嫌P/Invoke麻烦则可以用VC++.NET做一个托管包装
套接字工作于IP层及之上,ARP协议在链路层和网络层之间