2009-02-17 56 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/