CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
英特尔®游戏设计大赛100美元现金周周送 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  网络通信

如何得到ip包中正确的端口和序列等信息?

楼主duguyai(独孤崖)2003-08-02 16:59:20 在 专题开发/技术/项目 / 网络通信 提问

我已取得数据包数据buf(unsigned   char*)//via   winpcap   lib  
  int   off   =   0;  
  ...  
  hdr   =   (struct   bpf_hdr   *)(buf+off);  
  off+=   hdr->bh_hdrlen;  
  ip     =   (IP*)(buf   +   off   +   ETHERNET_HEADER_LENGTH);//结构ip中的数据都是对的(srcadd,dstadrr等)  
  tcp   =   (TCP*)((unsigned   char*)ip   +   (ip->HdrLen   &   IP_HDRLEN_MASK));//我查了很多例程都是这样写的,可是最后得到tcp->srcport等数据都不对,htons,ntohs我都试了可还是不对~   急~   望高手指教~! 问题点数:0、回复次数:6Top

1 楼zfb7901(zfb)回复于 2003-08-03 11:57:54 得分 0

我这有实例可以做到没有问题!zfb7901@163.comTop

2 楼duguyai(独孤崖)回复于 2003-08-12 00:24:16 得分 0

自己解决了Top

3 楼chinawzg(风雨)回复于 2003-08-22 02:06:37 得分 0

与数据包的类型中的数据结构有关  
  Top

4 楼danceflash(Wine)回复于 2003-08-22 10:02:27 得分 0

怎么解决的?   ^_^Top

5 楼chinawzg(风雨)回复于 2003-08-22 21:35:36 得分 0

为些事路由会处理的Top

6 楼adamw(无花果)回复于 2003-09-01 16:35:56 得分 0

ip     =   (IP*)(buf   +   off   +   ETHERNET_HEADER_LENGTH);//原有的程序  
  ip     =   (IP*)(buf);//BUF指的是接受缓冲区  
  IP是否指向接收数据包的头部?  
  如果用你原来的(第一行)程序,那么IP就指到什么地方去了?  
  如果是对的,那么直接应用下面:可以得到TCP包的头部,然后按TCP的协议进行解析就可以了?  
  tcp   =   (TCP*)((unsigned   char*)ip   +   (ip->HdrLen)*   4);//我查了很多例Top

相关问题

  • 如何拦截指定了源IP、端口和目标IP、端口之间的数据包
  • 如何向指定的IP地址及端口,发送UDP包
  • 收到广播包,如何提取IP和端口?
  • IP的端口使用
  • TCP/IP端口问题
  • 序列化解包问题
  • TCP/IP 110端口是什么服务
  • 〓〓〓〓 如何取得ip地址及端口 〓〓〓〓
  • 关于某TCP/IP端口的作用
  • socket和映射IP端口的问题

关键词

  • hdr
  • 数据
  • tcp
  • ip
  • hdrlen
  • 得到
  • buf
  • unsigned char

得分解答快速导航

  • 帖主:duguyai

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo