2009-02-17 55 views
1

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

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

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

回答

0

我设法找到这样做的两种方式,虽然双方都没有真正的程序化解决方案,所以可能无法吸引这些受众。

  1. 利用Jabber网关在您的jabber客户端和其他IM网络之间建立转发。流量通过jabber服务器在启用jabber的客户端和jabber服务器之间流动。然后Jabber服务器将其转换为目标网络协议并转发消息。同样,来自外部IM网络的消息也由Jabber服务器进行路由和转换。这方面的一个例子是PSI < - >微力< - > MSN

  2. 利用 Symantec IM Manager到网络上拦截从邮件客户端的消息。您将需要使用主机文件或本地DNS规则来说服您的本地PC,Messenger.hotmail.com实际上位于192.168.0.59而不是Microsoft。

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

0

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

1

这里有两个想法可能工作。

第一个是最简单的,但如果用户不想登录,用户可以轻松避免。这将是通过MSN使用MSN Plus。使用MSN Plus,您可以使用API​​来获取来自任何聊天窗口的所有消息......以及更多。当然,如果用户不是你,用户可以简单地卸载Msn Plus,你的程序不会记录任何数据。

如果您有一个网络需要检查所有Msn对话,第二个想法会更好。如果您使用WireShark,您可以看到对话不会被加密(以及上次执行此操作的时间),您可以检查端口和协议以简单地从网络获取数据。

希望它给你一个你需要的方式。

2

检出MSNPSharp。它是一个.NET的msn库。它非常强大,并允许您从多个位置登录。因此,您可以登录并聆听特定帐户上发生的其他对话。 它非常直接的使用。下载完整的源代码,有一个示例应用程序详细说明了它的用法。

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