搞的郁闷死了

tbcookie 2005-04-11 11:39:47
看了PiggyXP写的<<手把手教你玩转ARP包>>,自己也试了试,可怎么老是不行啊,可能是水平真的太次了,
这是他的原码:
void SendARPPacket()
{
char *AdapterDeviceName =GetCurAdapterName(); // 首先获得获得网卡名字
lpAdapter = PacketOpenAdapter(AdapterDeviceName); // 根据网卡名字打开网卡
lpPacket = PacketAllocatePacket(); // 给PACKET结构指针分配内存
PacketInitPacket(lpPacket, &ARPPacket, sizeof(ARPPacket)); //初始化PACKET结构指

// 其中的ARPPacket就是我们先前填充的ARP包
PacketSetNumWrites(lpAdapter, 1); // 每次只发送一个包
PacketSendPacket(lpAdapter, lpPacket, true) // Send !!!!! ^_^
PacketFreePacket(lpPacket); // 释放资源
PacketCloseAdapter(lpAdapter);
}
问题1:第一行的GetCurAdapterName()这个函数winpcap开发包里没有啊??

2:程序运行后PacketSendPacket()的返回值一直是零,应该是没发送成功吧,谁有这个程序的原代码发一份给我好吗???万分感谢!!!!!!
...全文
86 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
oyljerry 2005-04-12
  • 打赏
  • 举报
回复
GetCurAdapterName这个可以用GetAdaptersInfo来实现
kingzai 2005-04-12
  • 打赏
  • 举报
回复
1.GetCurAdapterName是piggyxp自己写的函数,把winpcap获取网卡信息的函数封装了
2.看winpcap的例子,有关于发包的
tbcookie 2005-04-12
  • 打赏
  • 举报
回复
我再试试吧,另:在ARP中有46bytes的数据,
还要填充18bytes的零是不是??
ARP包有没有CRC校验位??有没有4位的包尾?
也就是说我用PacketSendPacket发的结构体是一个60bytes的东西还是一个带包尾的64bytes的东西?
tbcookie 2005-04-11
  • 打赏
  • 举报
回复
忘了说邮箱了,tbcookie@163.com
真是晕了......

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧