如何监听本地应用程序的发送端口的数据包

firewolf10 2003-08-23 05:59:20
我想要监听,我自己机器上某个应用程序使用的端口的数据包,而不影响,该程序的运行。
...全文
456 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
davemin 2003-10-03
  • 打赏
  • 举报
回复
spi 吧。 做fire wall的技术比较好。可以什么端口都行。
zihan 2003-10-02
  • 打赏
  • 举报
回复
我给你一个sniffer的源代码了.zihan06@yeah.net
Fly1980 2003-10-01
  • 打赏
  • 举报
回复
gz
mechael 2003-09-30
  • 打赏
  • 举报
回复
你可以用raw socket 来实现这个功能,你可以查看所有你的机器可以看到的packet(其中也可以包括和你共享带宽的那些机器的packet),所以你就可以在这个基础上,你就可以filter你想要得信息。

至于端口号,我想一般得应用程序是不变得,你可以查到得。
sonic6 2003-09-11
  • 打赏
  • 举报
回复
我想问一句,这种方式收集是ip报文,但是如果是ipx/spx协议,能过滤出来么?我表示怀疑,那位高手能验证一下?
warton 2003-09-11
  • 打赏
  • 举报
回复
用winsock spi吧
inwindcn 2003-09-11
  • 打赏
  • 举报
回复
用WinPcap可以编程实现,设置混杂模式,分析数据包。
也可以直接用sniffer类的工具软件直接使用
firewolf10 2003-09-02
  • 打赏
  • 举报
回复
没人会吗
choiselee 2003-08-28
  • 打赏
  • 举报
回复
不能用接收方式,你监控软件接去了,人家正常的软件就接不到了,除非你做个filter驱动程序,用ddk太麻烦,别的类ddk也麻烦。

解决办法:

1、看《windows网络编程》带的源代码,有现成的。

2、也可以看sniffer源代码,介绍得很清楚。
firewolf10 2003-08-28
  • 打赏
  • 举报
回复
我没有《windows网络编程》,你能考一封粘贴在这里吗?谢谢!非常感谢
hawk_js 2003-08-27
  • 打赏
  • 举报
回复
学习ing
d4fan 2003-08-26
  • 打赏
  • 举报
回复

是c的

如何得到端口号就不清楚了,
我也想知道,

我还想知道怎么将网卡设为混杂模式
firewolf10 2003-08-26
  • 打赏
  • 举报
回复
上面你给我的程序是DELPHI的吧
firewolf10 2003-08-26
  • 打赏
  • 举报
回复
如何得到程序使用的端口号?还是在他刚打开的时候,我需要截听所有的通讯数据,
谢谢这位大侠给与讲解
fat_horse 2003-08-25
  • 打赏
  • 举报
回复
首先得到你这个应用程序使用的端口号,
然后监听这个端口的通信数据。
d4fan 2003-08-24
  • 打赏
  • 举报
回复

可以通过WSAIoctl设置标志SIO_RCVALL接受所有数据包
然后通过解码IP数据包,过滤出你想要的数据,
这样并不影响任何程序的运行

......
struct hostent FAR * pHostent;
pHostent = (struct hostent * )malloc(sizeof(struct hostent));
pHostent = gethostbyname(name);
SOCKADDR_IN sa;
sa.sin_family = AF_INET;
sa.sin_port = htons(6000);
memcpy(&sa.sin_addr.S_un.S_addr, pHostent->h_addr_list[0], pHostent->h_length);
bind(SockRaw, (PSOCKADDR)&sa, sizeof(sa));
//设置SOCK_RAW为SIO_RCVALL,以便接收所有的IP包
DWORD dwBufferLen[10] ;
DWORD dwBufferInLen = 1 ;
DWORD dwBytesReturned = 0 ;
WSAIoctl(SockRaw, SIO_RCVALL, &dwBufferInLen, sizeof(dwBufferInLen),
&dwBufferLen, sizeof(dwBufferLen),&dwBytesReturned, NULL, NULL);
//侦听IP报文
while(1)
{
memset(RecvBuf, 0, sizeof(RecvBuf));
recv(SockRaw, RecvBuf, sizeof(RecvBuf), 0);
DecodeIpPack(RecvBuf, iErrorCode);
~~~~~~~~~~~~// 根据IP包格式对其中内容进行分析
}

4,356

社区成员

发帖
与我相关
我的任务
社区描述
通信技术相关讨论
社区管理员
  • 网络通信
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧