飞鱼的成长

 

因本人不再做技术,

这个blog将不再连载技术文章,

只作为心情点滴的记录,

想学技术的请绕道,谢谢!

联系方式:

feiyu_lili@163.com


时 间 记 忆
«September 2020»
12345
6789101112
13141516171819
20212223242526
27282930

最 新 评 论
回复:什么都是错,唯有行动才是真道理
回复:我有个梦想
回复:自动词和他动词的分类比较[转][小
回复:Binaryluo 的  [网络编
回复:如何实现人生价值(转)
回复:工作有感
回复:如何实现人生价值(转)
回复:如何实现人生价值(转)
回复:如何实现人生价值(转)
回复:我有个梦想

最 新 日 志
我有个梦想
工作有感
我的人生路该怎么走
什么都是错,唯有行动才是真道理
想家的孩子
解压的方法(转)
关于我的一些调节心态的方法(转)
具体应该怎样同懒惰性做斗争?(转)
如何实现人生价值(转)
希望这里的房子能早点租掉

最 新 留 言
签写新留言

日语自动,他动
化妆了 :)
步伐当然记得你啦(不能回复,只能另起炉灶
好久不见了。。。
睡觉的问题
………………
~~~~~
。。。。
还以为你去日本了来
那里去了???

搜 索


用 户 登 录
用户名称:
登陆密码:
密码保存:

友 情 连 接

凡弟のBlog

祺弟のBlog

臭釉のBlog

 

blog名称:飞鱼的成长
日志总数:120
评论数量:488
留言数量:18
访问次数:1005681
建立时间:2006年2月27日
 
 
 
[网络监控类]Binaryluo 的 [网络编程技术]Winpcap学习:第二天(20060126) 的问题
[ 2006/4/13 11:23:22 | By: feiyu_lili ]
 
  源代码 /** 截获数据包的试验。先打印出所有网络适配器的列表,然后选择* 想在哪个适配器上截获数据包。然后通过pcap_loop()函数将截获* 的数据包传给回调函数packet_handler()处理。 * 通过该程序初步了解了使用winpcap截获数据包的步骤以及一些在* 截获数据包时非常重要的函数和结构体。* 2006-1-26*/ #include <pcap.h>#include <remote-ext.h> /* Prototype of the packet handler */void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data); int main() { pcap_if_t *alldevs; pcap_if_t *d; int inum; int i = 0; pcap_t *adhandle; char errbuf[PCAP_ERRBUF_SIZE];  /* Retrieve the devices list on the local machine */ if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL, &alldevs, errbuf) == -1) {  fprintf(stderr, "Error in pcap_findalldevs: %s\n", errbuf);  exit(1); }  /* Print the list */ for (d = alldevs; d; d = d->next) {  /* Print name */  printf("%d. %s", ++ i, d->name);   /* Print description */  if (d->description)  {   printf(" (%s)\n", d->description);  }  else  {   printf(" (No description available)\n");  } }  if (i == 0) {  printf("\nNo interfaces found! Make sure Winpcap is installed.\n");  return -1; }  /* Select an adapter */ printf("Enter the interface number (1 - %d):", i); scanf("%d", &inum);  if (inum < 1 || inum > i) {  printf("\nInterface number out of range.\n");  /* Free the device list */  pcap_freealldevs(alldevs);  return -1; }  /* Jump to the selected adapter */ for (d = alldevs, i = 0; i < inum - 1; d = d->next, ++ i);  /*Open the device */ if ((adhandle = pcap_open(d->name, /* name of the device */  65536,         /* portion of the packet to capture */  /* 65535 guarantees that the whole packet will be captured on all the link layers */  PCAP_OPENFLAG_PROMISCUOUS,     /* promiscuous mode */  1000,         /* read timeout */  NULL,         /* authentication on the remote machine */  errbuf         /* error buffer */  )) == NULL) {   fprintf(stderr, "\nnable to open the adapter. %s is not supported by Winpcap\n", d->name);   /* Free the devices list */   pcap_freealldevs(alldevs);    return -1; }  printf("\nlistening on %s...\n", d->description);  /* At this point, we don't need any more the device list. Free it */ pcap_freealldevs(alldevs); /* start the capture */ pcap_loop(adhandle, 0, packet_handler, NULL);  return 1;} /* Callback function invoked by libpcap for every incoming packet */void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data) { struct tm *ltime; char timestr[16];  /* convert the timestamp to readable format */ ltime = localtime(&header->ts.tv_sec); strftime(timestr, sizeof(timestr), "%H:%M:%S", ltime); printf("%s, %.6d len:%d\n", timestr, header->ts.tv_usec, header->len);}     在运行第二天的代码的时候我发现下面的问题 500)this.width=500'> 一,              对应最下面的1这个是“printf("%s, %.6d len:%d\n", timestr, header->ts.tv_usec, header->len);”里面的header->ts.tv_usec的header是哪里来的,“void packet_handler(u_char *param, const struct pcap_pkthdr *header, const u_char *pkt_data)”中的“const struct pcap_pkthdr *header”但是pcap_pkthdr结构体中是没有header的阿?更何况是对象ts.tv_usec呢? 类似的header->len是来自哪里的阿? 二,              三: 对应2我只有一张网卡,怎么会有两个显示阿,其中的一是什么东西啊 ? 麻烦告诉我哦~  
 

阅读全文(12955) | 回复(7) | 编辑 | 精华
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2009/4/1 17:27:35 | By: ADFS(游客) ]
 
空调维修 空调安装 空调移机 空调加氟 空调清洗 空调保养 空调修理 英语翻译 韩语翻译 婚纱摄影 秦皇岛婚纱摄影 摄影工作室 婚纱摄影工作室 海边摄影工作室 秦皇岛摄影工作室 秦皇岛海边摄影 北戴河婚纱摄影 婚纱外景 海边婚纱摄影 光盘印刷 光盘刻录 光盘复制 空调加氟 空调维修 空调移机 阀门 燃气阀 排气阀 蓄冰 节能空调
 

个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 
 
祝大家愚人节快乐!
[ 2007/3/31 16:53:42 | By: 游子(游客) ]
 
愚人节快到,大家节日快乐!^;^
 
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2006/6/9 11:58:02 | By: feiyu_lili ]
 
以下引用高山(游客)在2006-6-9 1:34:08的评论: 这两天一直忙这些东西,我可以告诉你第一个问题的答案。 A1:10:01:57.519816 指的是10点01分57.519816秒。帧到达的时间为:时:分:秒:分数秒。其中519816的值时0.549816秒(s),用毫秒表示则是549.816ms。许多网络问题都与很慢的响应时间有关,因而准确的时间非常重要。在观察网络数据流时,保持定时时很关键的。虽然是很久以前的问题了,不过还是学到东西了,谢拉
 
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2006/6/9 1:34:08 | By: 高山(游客) ]
 
这两天一直忙这些东西,我可以告诉你第一个问题的答案。 A1:10:01:57.519816 指的是10点01分57.519816秒。帧到达的时间为:时:分:秒:分数秒。其中519816的值时0.549816秒(s),用毫秒表示则是549.816ms。许多网络问题都与很慢的响应时间有关,因而准确的时间非常重要。在观察网络数据流时,保持定时时很关键的。
 
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2006/4/18 21:36:49 | By: feiyu_lili ]
 
以下引用binaryluo在2006-4-18 9:14:07的评论: 以下引用feiyu_lili在2006-4-13 11:31:17的评论: 这个我也有问题,不过这里不能贴图,我放在自己的blog上了,麻烦帮我解答一下 第二天的问题,请指教  地址:http://blogger.org.cn/blog/more.asp?name=feiyu_lili&id=13428A1:那是ts.tv_usec,具体的这个字段是什么意思你可以到SDK的文档中查下timeval这个结构体的说明。A2:有可能是modem,或者是什么软件虚拟出来的一个网络适配器……都有可能。A3:要么就是程序有问题;如果程序没有问题的话就是它在等待截获数据包,然而当前网络上没有数据包,所以它处于等待状态。原网址:http://blogger.org.cn/blog/more.asp?name=binaryluo&id=11459
 
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2006/4/13 16:00:10 | By: feiyu_lili ]
 
以下引用bladliu在2006-4-13 15:04:12的评论: void *packet_handler(...,*pcap_pkthdr header); 你翻翻winpcap的 manul,里面有pkthdr数据结构定义。里面有个len字段,本数据包的长度len是有了,那ts.tv_usec呢?
 
 
 
回复:Binaryluo 的  [网络编程技术]Winpcap学习:第二天(20060126)  的问题
[ 2006/4/13 15:04:12 | By: Blademaster ]
 
void *packet_handler(...,*pcap_pkthdr header); 你翻翻winpcap的 manul,里面有pkthdr数据结构定义。里面有个len字段,本数据包的长度
 
 
» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)
 
站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144473504 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号