免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 思一克
打印 上一主题 下一主题

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2005-01-10 10:59 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

我倒是觉得思一克的程序更应该精华,WINHATE版主的做法很对。
对于一个程序员来说,最需要的不应该是一个问题的全版本,而是对问题的最小简化。思一克的程序正是这样的,它能让我们很快了解这个问题的本质,再加上手册,我们能很容易扩展这个程序。
程序员不是最终客户。

论坛徽章:
0
22 [报告]
发表于 2005-01-10 11:00 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

收包的范围不就是调socket参数吗。
你都做过的了(在你的回贴中):
if((sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1)
      die("socket", 1);

论坛徽章:
0
23 [报告]
发表于 2005-01-10 12:48 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

呵呵,你的程序和我的程序实际上有本质的区别,虽然改动很小
你的程序依然是建立在IP SOCKET的基础上的,只能针对IP层某种协议数据包处理,在处理一种协议包时就不能处理另外一种协议包了.
而我给你改的,是建立在设备上的,是面对所有基于以太网协议的数据包处理.概念要搞清楚.

另回assiss:
精华不精华是无所谓的,是精华又能怎么样呢,目的是把问题搞清楚,只要在CU里可以看贴子回贴子就可以了,是精华又不发钱的想不到我的一句话会有这么多问题出现,呵呵!
我只是提出一点看法而已,既然有那么多讨论就多说几句,首先我声明我不是一个程序员,所以是抱着学习的态度来这里,我只是一个做嵌入底层软件的,和大家差的远.
其次我的建议只是个人看法,对于精华我依然认为要更精华,我对精华的定义是能引导别人进步,解决别人的难题,精华应该出现在最好的基础上的,如果我是版主我会等大家都畅所欲言欲言到一定程度之后再来评定该不该是精华,针对此贴,光有一点程序是远远不能称为精华的,至少应该还有相关的说明,我们的贴子里有吗???否则,精华多了还有精华的意义吗?
OK,气氛好了,继续跟贴

论坛徽章:
0
24 [报告]
发表于 2005-01-10 13:03 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

to 黄山松,
我发给你rcvall是原始的MSSDK程序。
你改的也很好。
我在此也建议C斑竹将你改动后的加到精华,如果精华怕类似的就将我的拿下。能给找此问题的人有帮助是我们共同的目的。

论坛徽章:
0
25 [报告]
发表于 2005-01-10 13:29 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

建议把 - 黄山松 改过的程序share 出来,另外同意 - 黄山松 的说法,socket 初始化之后,没有到链路层,所以不收那个包。
实际上大家都在学习,我是昨天才学网络编程。
另外 - assiss 的话和 - 黄山松没有冲突,我觉得是 - 黄山松想多了。

论坛徽章:
0
26 [报告]
发表于 2005-01-10 13:40 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

To 黄山松,

你好。我才细看你改动后的帖子。这一段好象有程序错误呀。


  1. case   IPPROTO_UDP:
  2.        pudp = (struct udphdr *)ptemp;
  3.        printf("UDP pkt:\n len:%d payload len:%d from %s:%d to %s:%d\n",
  4.              r,
  5.              ntohs(pudp->;len),
  6.              inet_ntoa(*(struct in_addr*)&(pip->;saddr)),
  7.              ntohs(pudp->;source),
  8.              inet_ntoa(*(struct in_addr*)&(pip->;daddr)),
  9.              ntohs(pudp->;dest)
  10.             );
  11.             /*
  12.               * and your service code....
  13.               */
复制代码


你最好回答我一下。

论坛徽章:
0
27 [报告]
发表于 2005-01-10 13:41 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

对不起,实际上已经有了:
if((sock = socket(AF_INET,SOCK_RAW,IPPROTO_TCP)) == -1) die("socket", 1);
if((sock = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL))) == -1) die("socket", 1);

我对比了这两行代码,- 黄山松 写的规范性要强, 这也是大家学习的亮点吗?

论坛徽章:
0
28 [报告]
发表于 2005-01-10 13:43 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

To Yufei00772002,

你看看我上一帖子,能发现问题吗?

论坛徽章:
0
29 [报告]
发表于 2005-01-10 13:46 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

不用比了,strcpy不能去掉的,这也是个知识点啊

论坛徽章:
0
30 [报告]
发表于 2005-01-10 13:49 |只看该作者

给出一个 netdump 程序, 抓包用的. 如果改进了,也希望贴出

那你还得改好在重新贴。
因为这是C坛子上常讨论并呼唤加以改正的问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP