热情软件屋

 

如何在网上抓来一个ip包,分析ip包的包头信息


编号: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地址的一个端口又不影响通讯"

此问题由高峰等回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio