编号:QA003134 建立日期: 2000年7月10日 最后修改日期:2002年3月15日 所属类别:
黄计划: 操作系统:windows 编程工具:VC++ 问题:我想在VC++中对网络协议进行底层操作,比如:象sniffer软件一样,在网上抓来一个ip包,分析ip包的包头信息。可是我在winsock1.0 2.0中都找不到相关的函数,请教哪里有相关的函数或者资料。
回答:
longtimerest的意见: 很简单,你到网上找一个叫libpcap的库(http://www.tcpdump.org/),装一个底层驱动程序,装好就可以直接调用函数抓包,我做过这样的程序,很简单。在linux和windowx下面都可以。 高峰的意见: 你想干吗?窃取国家机密?winsock解决不了这个问题,是一个已经封装的dll库,要想对ip进行分析,必须用vxd(win95,98)或wmd(NT)将网卡设为混杂模式,以便接受所有包信息,资料参考http://www.vchelp.net上的以太网卡直接读写。或TcpDump例程,上alstavista查一下把:-) fxb的意见: 如你会DELPHI,我有监听IP包的DELPHI的原程序(IPAM)ipman1.zip。 wonder的意见: 我十分同情你们这些没有机会掌握网络地层的小子,难道他们就不告诉我们他们有网络分析仪,也太坏了! 不过话说回来我也不太愿意,因为技术太开放了网络就不安全了,但是出于对国家有好处所以我还是告诉你们吧, 最好使用Netxray软件,虽说也可以对他人的登录密码进行分析,但是我们这个世界都使用网络交换机了(不广播)。 河晏的意见: ddk中有一个例子,好像叫做 Packet,98版的有。readme中有如河安装运行说明。源代码也有,只是每次之能读一包,可以改造。 天杀的意见: 这其实就是一个TCP/IP协议的问题!只要你监听到了以太网数据包后按照TCP/IP协议分析就可以了。要看看TCP/IP协议的资料!只要抓到数据包了过后就直接按照协议分析就是了! 先判断是什么帧,有netbeui,802.3和IP帧结构,如果是IP帧则继续分析,如来源地址,目的地址,端口,协议等等。详细的东西你最好还是找一本TCP/IP协议的书来看看! sonkind的意见: Win2000下winsock2.2可以用RAW_SOCKET实现你的功能。 相关问题: QA002413 "如何监听本机ip地址的一个端口又不影响通讯"
此问题由高峰等回答。 把这个问题推荐给朋友 您的意见类别 更好的答案 希望得到进一步解释 我有有关代码可以提供给网友 链接错误 文字错误 其他 您的名字 您的电子邮件 您的建议(请尽可能详细)