对等网(无服务器、有HUB、有交换机),32台机器,上网通过一路由ADSL,下连一16口交换机,下分HUB和交换若干,本机于32台机中一台,如何得知某台机器在下载或其所占带宽?
编程,工具,命令实现均可!

解决方案 »

  1.   

    你可以下载一个Ethereal来试试看,这款工具很强大的。不知能不能满足你的要求
    当然你可以自己编个这种程序来监控,推荐你用WinPcap这个开发工具,不过自己编起来要费点力气。
      

  2.   

    这是一个很复杂的问题,你要先从TCP/IP研究起,因为只有知道在你的计算机中接收发送了多少个TCP/IP包,你才知道它的流量。所以吗?你可以去图书馆看一看有关TCP/IP方面的书籍,本人也没有编过这方面的软件……也只是个人观点,仅供参考。
      

  3.   

    问题是这个问题复杂到根本不是监视本机TCP/IP包的问题,而是要监视有交换机的整个局域网的状况,其它的机器根本没有连在你机器上,又不是HUB,用Sniffer可能都不行
      

  4.   

    要用Sniffer的方法就必须在ADSL和交换机之间串一个HUB再把机器接到HUB上,哪位高人可以突破这一限制?
      

  5.   

    取本机的流量容易.取局域网的,还没有见过(Sniffer好像可以.)
      

  6.   

    本人也没有做过,不过,基于可以监视本机流量,提两个想法:
    其一,提问回答式的,让每台计算机自己算流量,当主机需要数据时,发命令给其他计算机,各个机器自己把流量数值返回(这招挺烂的,别打我啊!:p 不过好实现)。
    其二,海量监听式的,截获网内所有的数据包,逐个分析去向,再分类统计。这个方法类似黑客写的监听软件,只是数据量太大了,不知道PC机能不能算过来。这类程序的代码我有一段linux下C的,太长了,没有时间帖,不好意思,自己再找找材料吧。
    本人知识有限,只是给楼主提两个可行的方向,高手们可别笑我啊!
      

  7.   

    以前用實現過, 用 SNMP 協議!!!
      

  8.   

    所谓高手起码道德高尚,一看你,修养不够,CSDN不是你家,要骂娘回家去骂,你娘等着呢!
      

  9.   

    以前我們是用VC實現的, 然後, 界面部分是用 delphi 做的, 其實, 現在真正的網絡監控系統, 都是采用 SNMP 協議為主, jedi 上也有個翻譯了一個對應delphi的文件!
    snmp 又要學習一大堆東西, 但到最後編碼實現其實不難!!
    注: 我不覺得自己是高手, 你這樣的提問, 會讓很多本來知道答案的人不會回答!!
      

  10.   

    TO aiirii :
    你们是在交换网内解决的吗?
      

  11.   

    SORRY,各位,标题是写得太急了点,不过也是因为这个问题太难了,我不想耽误新人时间啊~~~
      

  12.   

    To aiirii(ari):
    你好!
    你用的 SNMP 是哪个版本?
      

  13.   

    你是在什么样的局域网内?如果是广播式以太局域网内只观察IP数据报的流量,这个事情还是比较好解决的。你只要知道点TCP/IP协议,在学学用WinPcap,就可以自己写一个统计流量的程序了。
      

  14.   

    lijccn(K')基本上说的很明确了。
    交换网基本上搞不定,因为不是所有的以太网封包都会发到你的计算机网卡上,只有和你的计算机网卡MAC地址一致的以太网封包才会被交换机发到你的网卡端口.所以想监听全部的网络数据是不可能的。
    我是菜鸟
      

  15.   

    我們可以這樣分, 一種是同個網段的, 用 sniffer 類, 一種是多個交換網互通的, 有几種實現方法, 但現在比較通用的 是用 snmp 來讀取, 具體讀到什麼, 要看相應的 switch, router的安全設置了, 部分智能hub也能支持snmp, 相反, 有些低端的switch反而不支持, 這是後話.我覺得, 放開snmp等相關協議的支持, 根本沒法做到跨網取數據的, 因為根本不會有數據流可直接讀取分析的! 這點要明确, 然後, 找相關的協議支持解決!!!
    如果你要解決問題, 或是得到比較有價值的答案, 應該到 C++類討論區去!!就我所知, 用delphi實現的相關實用產品并沒有!!!