ufw119 发表于 2010-1-19 15:30:26

请教如何查看网络连接状态或DDOS 攻击(已解决)

本帖最后由 ufw119 于 2012-6-5 15:12 编辑

AU3 可以检测到网卡的每秒发包量吗?借此判断电脑是不是中了流量攻击或DDOS攻击。谢谢!!

FBWOLF 发表于 2010-1-19 17:29:18

本帖最后由 FBWOLF 于 2010-1-19 17:35 编辑

可以的Opt("MustDeclareVars", 1)

Local Const $sIP = "192.168.1.70", $sMac = "00:20:21:22:CC:DD"
Local $aIfTable, $iIndex = 0,$FIRST0=0,$FIRST1=0
WHILE 1
$aIfTable = _GetIfTable()
For $i = 1 To $aIfTable
      If $aIfTable[$i] = 6 Then
$FIRST0=$aIfTable[$i]
$FIRST1=$aIfTable[$i]
      EndIf
Next

SLEEP(1000)
$aIfTable = _GetIfTable()
For $i = 1 To $aIfTable
      If $aIfTable[$i] = 6 Then
TOOLTIP(ROUND(($aIfTable[$i]-$FIRST0)/1024,1)&@CRLF&ROUND(($aIfTable[$i]-$FIRST1)/1024,1),0,0)
      EndIf
Next
WEND


Exit




;===============================================================================
; 说明:   获取 MIB-II 接口表
; 语法:   _GetIfTable()
; 参数:   无
; 需要:   无
; 返回:   成功 - 二维数组, 结构:
;         $array - 接口总数
;         $array - 第一接口索引号
;         $array - 第一接口名称
;         $array - 第一接口类型
;         $array - 第一接口MTU字节数
;         $array - 第一接口连接速度
;         $array - 第一接口物理地址
;         $array - 第一接口管理状态
;         $array - 第一接口操作状态
;         $array - 第一接口持续时间
;         $array - 第一接口接收字节数
;         $array - 第一接口接收单播数据包
;         $array - 第一接口接收广播和组播数据包
;         $array - 第一接口接收数据包丢弃数
;         $array - 第一接口接收数据包错误数
;         $array - 第一接口接收未知协议数据包
;         $array - 第一接口发送字节数
;         $array - 第一接口发送单播数据包
;         $array - 第一接口发送广播和组播数据包
;         $array - 第一接口发送数据包丢弃数
;         $array - 第一接口发送数据包错误数
;         $array - 第一接口传输队列长度
;         $array - 第一接口描述
;         ...
;          至 - 第 n 接口信息
;         失败 - 空列表数组 = 0, 并设置 @error 到 1, @extended 到API操作返回值
; 备注:   参考: http://www.autoitx.com/forum.php?mod=viewthread&tid=7308 3#
;===============================================================================
Func _GetIfTable()
      Local $aResult, $sPhysAddr, $iPhysAddrLen, $sDescr, $iDescrLen, $iIndex = 0, $aIfTable = []
      Local $tBuffer, $pBuffer, $tNum, $tagIfTable = "", $tIfTable

      $aResult = DllCall("iphlpapi.dll", "dword", "GetIfTable", _
                        "ptr", 0, "int*", 0, "int", 1)
      If $aResult = 0 Then Return SetError(1, $aResult, $aIfTable)

      $tBuffer = DllStructCreate("ubyte[" & $aResult & "]")
      $pBuffer = DllStructGetPtr($tBuffer)
      $aResult = DllCall("iphlpapi.dll", "dword", "GetIfTable", _
                        "ptr", $pBuffer, "int*", $aResult, "int", 1)

      $tNum = DllStructCreate("dword", $pBuffer)
      $aIfTable = DllStructGetData($tNum, 1)
      For $i = 1 To $aIfTable
                $tagIfTable &= ";wchar;dword;byte;dword;byte"
      Next
      $tIfTable = DllStructCreate("dword" & $tagIfTable, $pBuffer)

      ReDim $aIfTable[$aIfTable + 1]
      For $i = 2 To $aIfTable * 5 Step 5
                $iPhysAddrLen = DllStructGetData($tIfTable, $i + 1, 5)
                $sPhysAddr = DllStructGetData($tIfTable, $i + 2)
                $sPhysAddr = StringLeft($sPhysAddr, 2 + $iPhysAddrLen * 2)
                $sPhysAddr = _FormatMac($sPhysAddr)
                $iDescrLen = DllStructGetData($tIfTable, $i + 3, 16)
                $sDescr = DllStructGetData($tIfTable, $i + 4)
                $sDescr = StringLeft($sDescr, $iDescrLen * 2)
                $sDescr = BinaryToString($sDescr)

                $iIndex += 1
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 1, 1)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 1, 2)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 1, 3)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 1, 4)
                $aIfTable[$iIndex] = $sPhysAddr
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 1)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 2)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 3)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 4)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 5)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 6)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 7)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 8)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 9)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 10)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 11)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 12)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 13)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 14)
                $aIfTable[$iIndex] = DllStructGetData($tIfTable, $i + 3, 15)
                $aIfTable[$iIndex] = $sDescr
      Next

      Return SetError($aResult, 0, $aIfTable)
EndFunc   ;==>_GetIfTable


Func _FormatMac($sMac, $iString = True)
      If $iString Then
                $sMac = StringTrimLeft($sMac, 2)
                Return StringTrimRight(StringRegExpReplace($sMac, ".{2}", "\0:"), 1)
      Else
                Return "0x" & StringReplace($sMac, ":", "")
      EndIf
EndFunc   ;==>_FormatMac代码是以前的,没做过错误调试!楼主自己看吧!

ufw119 发表于 2010-1-22 15:37:26

没有调用成功。。后参考这里有点眉目http://www.autoitx.com/forum.php?mod=viewthread&tid=10914&highlight=%B7%A2%B0%FC。
欢迎再顶。。

zmj2008 发表于 2010-3-14 06:25:10

我跟着来学习

lxz 发表于 2010-3-14 08:02:10

来学习......

menfan1 发表于 2010-3-14 12:23:05

呵呵,学习一下。。

qq1244521 发表于 2010-5-21 10:28:57

:face (13):查看网络连接 还可以但是DDOS 就不行了
页: [1]
查看完整版本: 请教如何查看网络连接状态或DDOS 攻击(已解决)