1

我想跟踪通过 Windows Live Messenger 发送和接收的消息。然后我想将这些消息整理到一个数据库中(不在这个问题的范围内)。

问题是我应该如何以及在哪里跟踪这些消息。强制所有客户保留历史文件并阅读这些文件的最简单方法,但这并不是我真正想要的解决方案。有没有办法从运行在同一域中的服务器跟踪它们,我读过一点 Windows Communicator,我也看到很多人谈论http://dev.live.com/messenger/但我是希望有人可能已经解决了这个问题:)

我想使用 C# .NET 3.5 来做到这一点

4

4 回答 4

2

查看 MSNPSharp。它是一个 .NET msn 库。它非常强大,允许您从多个位置登录。因此,您可以登录并收听给定帐户上发生的其他对话。它使用起来非常简单。下载完整的源代码,有一个示例应用程序详细演示了它的使用。

http://code.google.com/p/msnp-sharp/

于 2009-02-17T15:06:59.137 回答
1

这是两个可能有效的想法。

第一个是最简单的,但如果用户不想被登录,则可以轻松避免。这将是在 MSN 上使用MSN Plus。使用 MSN Plus,您有一个 API,可以让您从任何聊天窗口获取所有消息......等等。当然,如果用户不是你,用户可以简单地卸载 Msn Plus,你的程序不会记录任何数据。

如果您有一个需要检查所有 Msn Conversation 的网络,则第二个想法会更好。如果您使用WireShark,您可以看到对话没有加密(我上次这样做的时候),您可以检查端口和协议以简单地从网络获取数据。

希望它可以为您提供所需的方法。

于 2009-02-17T13:50:27.073 回答
0

只有两个想法
1. 首先,标准的 MSN 协议是纯文本(据我了解),因此您可以在防火墙上拦截消息,然后将它们放入数据库并在那里进行关联。
2. 如果这是在一个组织中,您可以使用 Office Communicator,它是 MSN 的“企业”版本,并且已经内置了该功能。然后,您可以通过他们的 SDK 进入并获取相关数据。

于 2009-02-17T13:44:19.460 回答
0

我设法找到了两种方法来做到这一点,虽然两者都不是真正的程序化解决方案,所以可能不会吸引这些观众。

  1. 使用 Jabber 网关在您的 Jabber 客户端和其他 IM 网络之间设置转发。通过 jabber 服务器在启用了 jabber 的客户端和 jabber 服务器之间流动。然后,Jabber 服务器将其转换为目标网络协议并转发消息。同样,来自外部 IM 网络的消息由 Jabber 服务器路由和翻译。一个例子是 PSI <-> IceWarp Merak <-> MSN

  2. 使用Symantec IM Manager拦截来自网络上消息传递客户端的消息。您将需要使用主机文件或本地 DNS 规则来使您的本地 PC 相信 Messenger.hotmail.com 实际上位于 192.168.0.59 而不是 Microsoft。

希望它可以帮助其他可能想做同样事情的人。

于 2009-09-29T09:31:48.687 回答