我现在是用原套接字抓包,能解析ip头,还不知道tcp头(假设是tcp协议),数据段怎样解析,希望大家给点提示,还有能不能请大家告诉我ip包的具体构成,非常感谢!
解决方案 »
- 如何区分是普通网卡还是无线网卡在上网?
- 求教:自画CTabCtrl
- 关于创建属性页的问题
- 使用boost 正则表达提取字符串的问题~
- sdk中怎么没有directshow samples??
- DpToLp,LpToDp和ClientTScreen,ScreenToClient它们的区别的在哪里????
- 类的成员变量ClassA* m_a(ClassA是一个类);我要在类的多个成员函数中使用他,怎么初始化呢?!
- 完成端口
- d菜鸟问题:对话框中的按钮无法编辑代码?
- 我在一个对话框上 建立一个 窗口 比如 list view 然后 我想响应一个该窗口的LBUTTONDOWN 的消息,我该怎么办啊,我怎么用到这个窗口的消息循环函数呢!!
- vc下 USB 通讯的问题
- 关于串口打开的问题
typedef struct ip_hdr{
unsigned char ip_verlen; // 前4位IP版本号(IPv4 或者IPv6) // 后4位头部长度(32位,4字节)
unsigned char ip_tos; // 前3位为优先级,后5位为服务类型
unsigned short ip_totallength; // 16位包总长度包括头部和数据(字节)
unsigned short ip_id; // 16位ID标识
unsigned short ip_offset; // 前3位为分段标识,后5位为分段偏移
unsigned char ip_ttl; // 该包可经过的路由器数量上限
unsigned char ip_protocol; // 协议类型(TCP,UDP,ICMP,IGMP等)
unsigned short ip_checksum; // ipv4 头部的校验和
unsigned int ip_srcaddr; // ipv4 源地址
unsigned int ip_destaddr; // ipv4 目的地址
} IPV4_HDR, *PIPV4_HDR;
你将收到的包 转换成 IPV4_HDR 结构,然后依次读取其中的每项即可。