本帖最后由 chenronting 于 2011-7-13 22:02 编辑
回复 13# freedom
我已给你QQ消息,应该可以;你修改一下;
以下是我的源码:
#include <Array.au3>
#include <Constants.au3>
Func _Cmdhx($blt)
Local $foo, $array, $text
$foo = Run(@ComSpec & ' /c ' & $blt, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
If @error Then Return SetError(1)
ProcessWaitClose($foo)
$text = StdoutRead($foo)
$array = StringSplit($text, @CRLF)
Return $array
EndFunc ;==>_Cmdhx
Global $ipxx = _Cmdhx('ipconfig /all');得到回显
For $i = 1 To $ipxx[0];循环判断
If StringLeft($ipxx[$i], StringLen('Ethernet adapter')) == 'Ethernet adapter' Then;如果有此关键词,此为本地连接的
Local $temp=StringTrimRight(StringStripWS(StringStripWS(StringMid($ipxx[$i],StringInStr($ipxx[$i],'adapter')+8),4),1),1);得到连接名
;~ MsgBox(0,0,$temp)
Global $net1 = _xinxifenjie($ipxx, $i + 1);得到此连接的详细信息
$i=$net1[8];设置变量 i 的位置
$net1[8]=$temp;设置连接名
_ArrayDisplay($net1, $i);显示信息
;~ MsgBox(0,$ipxx[$xi] & ' ' & StringInStr($ipxx[$xi],':'),StringStripWS(StringMid($ipxx[$xi],StringInStr($ipxx[$xi],':')+1),4))
EndIf
If StringLeft($ipxx[$i], StringLen('PPP adapter')) == 'PPP adapter' Then;如果有此关键词,此为 VPN 连接
Local $temp=StringTrimRight(StringStripWS(StringStripWS(StringMid($ipxx[$i],StringInStr($ipxx[$i],'adapter')+8),4),1),1)
;~ MsgBox(0,1,$temp)
Global $net2 = _xinxifenjie($ipxx, $i + 1)
$i=$net2[8]
$net2[8]=$temp
_ArrayDisplay($net2, $i)
EndIf
Next
Func _xinxifenjie($array, $i);得到连接详细信息的Func
Local $Return[9]
;~ _ArrayDisplay($array, $i)
For $subi = $i To $array[0]
If $array[$subi] <> '' Then
Switch StringLeft(StringStripWS($array[$subi], 1), 4);先删除开头的空格,再得到前4个字符
Case 'Desc'
$Return[1] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 2
Case 'Phys'
$Return[2] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 2
Case 'IP A'
$Return[3] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 2
Case 'Subn'
$Return[4] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 2
Case 'Defa'
$Return[5] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 2
Case 'DNS '
$Return[6] = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
$subi += 3
$Return[7] = StringStripWS($array[$subi], 8)
$Return[0] = 8
$Return[8]=$subi
;~ _ArrayDisplay($Return, 'Debug~~~')
Return $Return;返回数组
EndSwitch
EndIf
Next
EndFunc ;==>_xinxifenjie
|