2009-10-20 80 views
1

我目前正在研究一個.NET Cyber​​cafe管理程序,並且想要計算Cyber​​cafe中每臺計算機從互聯網上下載的數據量,因爲用戶必須爲其下載量付費。如何計算計算機下載的金額?

我相信在Windows中必須有某種API來給我這個。 我應該在哪裏看?

謝謝大家。

+1

您的電腦如何連接到互聯網?如果你有一個代理服務器,也許你只需要收集它的數據,或者你想要一個機器的解決方案? – 2009-10-20 10:21:55

+0

對上述評論+1,代理服務器是做這種跟蹤的最好和最簡單的方法。 – 2009-10-20 10:27:12

+0

沒有代理服務器。一個'每臺機器'的解決方案是必需的。 – TheAgent 2009-10-26 08:25:25

回答

2

我剛剛發現System.Net.NetworkInformation命名空間,寫了下面的代碼:

NetworkInterface[] networkInterfaces = 
    NetworkInterface.GetAllNetworkInterfaces(); 
foreach (NetworkInterface ni in networkInterfaces) 
{ 
    IPv4InterfaceStatistics stats = ni.GetIPv4Statistics(); 
    IPInterfaceProperties props = ni.GetIPProperties(); 
    Console.WriteLine("{0} ({1:#,##0.00}Mb/s, {2})", 
     ni.Name, ni.Speed/1024D/1024D, ni.OperationalStatus); 
    Console.WriteLine("\t{0}", ni.Description); 

    Console.WriteLine("\t{0:#,##0.00}Mb sent, {1:#,##0.00}Mb received", 
     stats.BytesSent/1024D/1024D, stats.BytesReceived/1024D/1024D); 
    Console.WriteLine(); 
} 

我得到這個輸出:

 
Local Area Connection 2 (953,67Mb/s, Up) 
     Realtek RTL8169/8110 Family PCI Gigabit Ethernet NIC (NDIS 6.0) 
     1.906,92Mb sent, 483,77Mb received 

Local Area Connection 3 (9,54Mb/s, Down) 
     D-Link DFE-520TX PCI Fast Ethernet Adapter 
     0,00Mb sent, 0,00Mb received 

Loopback Pseudo-Interface 1 (1.024,00Mb/s, Up) 
     Software Loopback Interface 1 
     0,00Mb sent, 0,00Mb received 

HTH

+0

這是非常好的;但是,有沒有一種方法可以區分從Internet和本地網絡流量發送和接收的數據? – TheAgent 2009-10-26 08:30:59

1

我會使用一些內置的目的解決方案。谷歌的網吧管理軟件「 - 有噸結果:

如:www.handycafe.com/

+0

是的,作爲措辭的問題與proggramming相關,但是_it不應該是__。 – MSalters 2009-10-20 11:53:50

+0

當然,他可能會試圖創造一個網吧管理系統以獲取利潤,在這種情況下,我的答案不是很有幫助! (或許高估了它是一個擁擠的市場)但是,如果他試圖運行一個網吧(併爲它創建自己的解決方案),那麼我就是這麼想的。 – UpTheCreek 2009-10-20 12:45:54

+0

我的問題中有很多線索暗示我正在創建一個Cyber​​cafe管理系統。 – TheAgent 2009-10-26 08:29:00

1

您還可以閱讀系統上的性能計數器。請參閱.NET中的PerformanceCounter類。有關計算機上可用性能計數器的列表。開始 - >運行Perfmon - >執行「添加計數器」查看可用的。