2011-12-01 17 views
0

我想編寫一個監視一些遠程分支的應用程序。我想要監視兩件事使用visual c#監視Icmp .net

1)icmp drop(如果我發送10個ping並且2個或更多個被丟棄然後提醒) 2)如果ping的延遲超過20ms則提醒。

我剛剛定義了粗略的閾值。它可以在visual c#中完成,基本上我正在學習c#併爲我的辦公室做些東西,這樣我的學習就會朝着正確的方向發展。如果你們能把我指向正確的方向,我將不勝感激。我在.net(在谷歌我的意思)中見過ping類,但我認爲它只告訴IP是否啓動。

請親引導我

+1

注意:在.NET 4上等待'PingReply'時退出調試器,**將導致BSOD。我建議你堅持.NET 3.5。 https://connect.microsoft.com/VisualStudio/feedback/details/691615/stopping-debugging-session-while-waiting-for-pingreply-causes-bsod – leppie

+0

你如何連接到遙控器? – dbasnett

回答

0

這是一件相當容易的事情。

首先,您需要winpcap驅動程序http://www.winpcap.org/,如果您有任何類似wireshark的安裝,您可能已擁有該驅動程序。

一旦你有你WinPcap的驅動程序,然後要麼需要「SharpPcap」的.NET庫接口,以WinPcap的:

http://www.tamirgal.com/blog/page/SharpPcap.aspx 

,或者你可以使用P/Invoke和其他非託管的東西你自己把它包...

http://dranaxum.wordpress.com/2010/11/20/using-winpcap-in-c/ 
http://geekswithblogs.net/dotnetnomad/archive/2008/01/31/119140.aspx 
+0

這對我有用嗎? 也是,這個任務很簡單,只是爲了監測有多少ping包丟失了10個,所以爲此我需要與winpcap進行交互? 好的,我可能會那樣做,但有一個簡單的方法嗎? – user1068846

+0

可能還有其他方法可以做到這一點,就像使用任何編程(101種方法來爲貓皮等等)一樣,但對於需要捕獲和緩存非應用程序數據包流量的低級別場景,winpcap和sharpcap一直服務於我很好。 – shawty