【问题标题】:Track messages though Windows Live Messenger通过 Windows Live Messenger 跟踪消息
【发布时间】:2009-09-29 17:31:48
【问题描述】:
我想跟踪通过 Windows Live Messenger 发送和接收的消息。然后我想将这些消息整理到一个数据库中(不在这个问题的范围内)。
问题是我应该如何以及在哪里跟踪这些消息。强制所有客户保留历史文件并阅读这些文件的最简单方法,但这并不是我真正想要的解决方案。有没有办法从运行在同一域中的服务器跟踪它们,我已经阅读了一些 Windows Communicator,我也看到很多人谈论 http://dev.live.com/messenger/ 但我希望有人可能已经解决了这个问题:)
我想使用 C# .NET 3.5 来完成这项工作
【问题讨论】:
标签:
c#
.net
windows-live-messenger
【解决方案2】:
这里有两个可能可行的想法。
第一个是最简单的,但如果用户不想被登录,可以很容易地避免。在 MSN 上使用MSN Plus。使用 MSN Plus,您拥有一个 API,可以让您从任何聊天窗口获取所有消息......等等。当然,如果用户不是你,用户可以简单地卸载 Msn Plus,你的程序不会记录任何数据。
如果您有一个需要检查所有 Msn Conversation 的网络,则第二个想法会更好。如果您使用WireShark,您可以看到对话没有加密(我上次这样做的时候),您可以检查端口和协议以简单地从网络获取数据。
希望它能为您提供所需的方法。
【解决方案3】:
只有两个想法
1. 首先,标准的 MSN 协议是纯文本(据我了解),因此您可以在防火墙上拦截消息,然后将它们放入数据库并在那里进行关联。
2. 如果这是在一个组织中,您可以使用 Office Communicator,它是 MSN 的“企业”版本,并且已经内置了该功能。然后,您可以通过他们的 SDK 进入并获取相关数据。
【解决方案4】:
我设法找到了两种方法来做到这一点,虽然这两种方法都不是真正的程序化解决方案,所以可能不会吸引这些观众。
使用 Jabber 网关在您的 Jabber 客户端和其他 IM 网络之间设置转发。通过 jabber 服务器在启用了 jabber 的客户端和 jabber 服务器之间流动。然后,Jabber 服务器将其转换为目标网络协议并转发消息。同样,来自外部 IM 网络的消息由 Jabber 服务器路由和翻译。这方面的一个例子是 PSI IceWarp Merak MSN
利用 Symantec IM Manager 拦截来自网络上消息传递客户端的消息。您需要使用主机文件或本地 DNS 规则来让您的本地 PC 相信 Messenger.hotmail.com 实际上位于 192.168.0.59 而不是 Microsoft。
希望它可以帮助其他可能想要做同样事情的人。