如何取得本地连接的状态信息,主要是网络流量的数据?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何取得本地连接的状态信息,主要是网络流量的数据?相关的知识,希望对你有一定的参考价值。

我想用VB获取到 本地连接的状态信息 怎么获取到!
API吗?(我要代码!)
回答满意追加双倍积分!
全他妈的粘贴过来的,就每人真懂API啊?愁

看看你的网络服务,我指的是看看是不是有人盗用你的宽带,或者是否和别人用同一条线,另外你得注意你机子可能有病毒在向外发送信息,恩,或者你装了什么软件,如VAGAA他会自动向外发送数据,很烂的流氓软件
知道为什么一下载东西,收到的数据包会比前面的多吗?前面的数据是自己的电脑向外发送的,主要目的就是显示网络的连接,一般是发送一个,收到一个(意思),这样证明你的网是连接的,但是当你下载东西,你的电脑是从以太网内往回拖东西(也就是数据),所以,显示的是你的后面的数据包数量明显比前面的包多,这样的话,就要看你的网络流量的大小了~~~
开始我为什么说你网速不行呢?一个网络的网速是看它的网络数据流量,同样100的流量,1M的网速和100M的网速是不一样的(比喻)。当你的后面数据包的量太多的时候,造成了网络堵塞,电脑向外发的数据包发不出去了,显示的实际效果就是断网,于是,重启,你下载的东西停了,网络恢复通畅~又可以上网了~~~~
所以,不是电脑的问题,是你的网速的问题,一般老百姓个人家里的网速都不是很快,在网吧这种情况是不会有的

看到你第一个问题解决了,不知道是不是我说的那样
下面给你说说你第二个问题
由于在引导操作系统之前就出现死机,而且重复启动之后就能够完全正常工作,因此病毒的可能性很小,可能与主板和开关电源有关。
为保护微机的工作稳定可靠,开启电源后,微机电源的POWER GOOD信号线在5V和12V准备好后延时0.1-0.5ms向微机主板输送一个幅度为5V的微机自检启动信号,如果该信号不能及时升达5V均会导致系统不能正常启动。在POWER GOOD信号正常之后重新复位,才能正常启动。在业余条件下检查有一定困难,可更换开关电源试一试。
如果能够排除开关电源的问题,可进一步检查主机其它部分。有可能是某一设备的电解电容或钽电容漏电,需充电一定时间方能慢慢恢复,个别半导体芯片故障也有可能,只能逐一取下板卡试试,到只剩显示卡还未解决问题时,通电后用手触摸板上各电容、芯片看有无异常发热现象,如果电容或者芯片有异常发热现象应当更换。
参考技术A Declare Function GetNetworkParams Lib "iphlpapi.dll" (FixedInfo As Any, pOutBufLen As Long) As Long
Declare Function GetIfTable Lib "iphlpapi.dll" (ByRef pIfTable As MIB_IFTABLE, ByRef pdwSize As Long, _
ByVal bOrder As Long) As Long
Declare Function GetIfEntry Lib "iphlpapi.dll" (pIfRow As MIB_IFROW) As Long

Type MIB_IFROW '保存结果信息
wszName(0 To 511) As Byte '接口名称的Unicode字符串,必须为512字节
dwIndex As Long '接口编号
dwType As Long '接口类型,参看IP_ADAPTER_INFO类型的Type成员
dwMtu As Long '最大传输单元
dwSpeed As Long '接口速度(字节)
dwPhysAddrLen As Long '由bPhysAddr获得的物理地址有效长度
bPhysAddr(0 To 7) As Byte '物理地址
dwAdminStatus As Long '接口管理状态
dwOperStatus As Long '操作状态,以下值之一:
dwLastChange As Long '操作状态最后改变的时间
dwInOctets As Long '总共收到(字节)
dwInUcastPkts As Long '总共收到(unicast包)
dwInNUcastPkts As Long '总共收到(non-unicast包),包括广播包和多点传送包
dwInDiscards As Long '收到后丢弃包总数(即使没有错误)
dwInErrors As Long '收到出错包总数
dwInUnknownProtos As Long '收到后因协议不明而丢弃的包总数
dwOutOctets As Long '总共发送(字节)
dwOutUcastPkts As Long '总共发送(unicast包)
dwOutNUcastPkts As Long '总共发送(non-unicast包),包括广播包和多点传送包
dwOutDiscards As Long '发送丢弃包总数(即使没有错误)
dwOutErrors As Long '发送出错包总数
dwOutQLen As Long '发送队列长度
dwDescrLen As Long 'bDescr部分有效长度
bDescr(0 To 255) As Byte '接口描述
End Type

Type MIB_IFTABLE '包含结果表
dwNumEntries As Long '当前网络接口的总数
MIB_Table(9) As MIB_IFROW '指向一个包含MIB_IFROW类型的指针
End Type

Sub Test()
Dim Net As MIB_IFTABLE
LenIfT = Len(Net)
RValue = GetIfTable(Net, LenIfT, True)
'由Net.dwNumEntries获得接口数量,然后用for…next循环获取每个接口信息:
For I = 1 To Net.dwNumEntries - 1
With Net.MIB_Table(I)
Debug.Print
Debug.Print "----" & Time & "----"
Debug.Print "接口编号:" & .dwIndex
Debug.Print "接口速度:" & .dwSpeed
Debug.Print "接口状态:" & .dwAdminStatus
Debug.Print "操作状态:" & .dwOperStatus
Debug.Print "收到字节:" & .dwInOctets
For XI = 1 To .dwPhysAddrLen - 1
TXX = TXX & Format(Hex(.bPhysAddr(XI)), "00")
Next
If TXX <> "" Then Debug.Print "网卡地址:"; TXX
End With
Next
End Sub

你看看这个行么,如果不行.
http://www.vbgood.com/viewthread.php?tid=42599
这个论坛的三楼有个附件,那个挺好的.本回答被提问者采纳
参考技术B WNetGetConnection

VB声明
Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long
说明
获取本地或已连接的一个资源的网络名称
返回值
Long,零表示成功。会设置GetLastError。如GetLastError是ERROR_EXTENDED_ERROR,则可用WNetGetLastError取得额外的错误信息
参数表
参数 类型及说明
lpszLocalName String,本地设备的名字
lpszRemoteName String,指定一个字串缓冲区,用于装载设备的资源名称
cbRemoteName Long,lpszRemoteName缓冲区的字符数量。如缓冲区不够大,则设为需要的缓冲区长度
参考技术C 用p2p终结者不就行了吗 参考技术D 这个问题太深奥了,本来以为很简单,没想到你要代码,那就无能为力了,只能祝你早日找到合适的答案了

以上是关于如何取得本地连接的状态信息,主要是网络流量的数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置电脑的固定IP地址

如何获取局域网内主机信息-连接网络帐号\密码

DSAPI.网络.网卡信息属性表

如何监控LINUX网络状态

网卡收发数据包数量大的惊人如何解决

从本地连接 Azure 公共服务