我想问下,怎么判断我的某个vpn虚拟连接是否连接上啊
RT,“我想问下,怎么判断我的某个vpn虚拟连接是否连接上啊?”在线等哦。
:face (13)::face (37): 四小时过去了:face (31): 我也想知道..... 暂没想到正规的好办法,只好PING VPN服务器的IP吧(内网那个)或 查CMD 的ROUTER命令什么的吧(看回显有服务器地址没) 17小时过去了:face (31):
真的没办法吗
router不太懂啊 可以通过ping vpn对端的ip地址来判断,是否连接上。 什么是对端ip啊,不明白,可以说详细点不,谢了:face (38): 客户机连接VPN服务器后,会获得一个IP(内网的,一般192.168.*.*,看服务器怎么设置的了),对应服务器也有一个内网IP(看服务器怎么设置的,一般是IP段的第一个),所有客户机都依这个IP段成为一个小局域网,你可以用AU3看CMD回显(如是否获得IP或PING服务器IP通否),同样的可以看CMD的route print命令回显也行。。
上面的方法是下下之策,期待正规的办法 #include <Array.au3>
Func _RasEnumConnections()
Local $tBuffer, $pBuffer, $iSizeofBuffer, $tRasConn, $iResult, $aResult
Local Const $tagRAS_CONNECTION= "dword Size;hWnd RasConnection;char EntryName;" & _
"char DeviceType;char DeviceName;char Pnebk;" & _
"dword SubEntry;byte EntryGuid;dword Flags;int Luid;ptr Correlation"
$tBuffer = DllStructCreate($tagRAS_CONNECTION)
$pBuffer = DllStructGetPtr($tBuffer)
$iSizeofBuffer = DllStructGetSize($tBuffer)
DllStructSetData($tBuffer, "Size", $iSizeofBuffer)
$iResult = DllCall("Rasapi32.dll", "dword", "RasEnumConnections", _
"ptr", $pBuffer, "dword*", $iSizeofBuffer, "dword*", 0)
$tBuffer = 0
If ($iResult < 1) Then Return SetError(@error, 0, $aResult)
If ($iResult = 1) Then
$tBuffer = DllStructCreate($tagRAS_CONNECTION)
Else
$tBuffer = DllStructCreate($tagRAS_CONNECTION & ";byte Data[" & ($iResult - 1) *
$iSizeofBuffer & "]")
EndIf
DllStructSetData($tBuffer, "Size", $iSizeofBuffer)
$iResult = DllCall("Rasapi32.dll", "dword", "RasEnumConnections", _
"ptr", $pBuffer, "dword*", $iSizeofBuffer * $iResult, "dword*", 0)
If ($iResult) Then Return SetError($iResult, 0, $aResult)
$aResult = $iResult
Redim $aResult[$iResult + 1]
For $i = 1 To $iResult
$tRasConn = DllStructCreate($tagRAS_CONNECTION, $pBuffer)
$aResult[$i] = DllStructGetData($tRasConn, "RasConnection")
$aResult[$i] = DllStructGetData($tRasConn, "EntryName")
$aResult[$i] = DllStructGetData($tRasConn, "DeviceType")
$aResult[$i] = DllStructGetData($tRasConn, "DeviceName")
$aResult[$i] = DllStructGetData($tRasConn, "Pnebk")
$aResult[$i] = DllStructGetData($tRasConn, "SubEntry")
$aResult[$i] = DllStructGetData($tRasConn, "Flags")
$pBuffer += $iSizeofBuffer
Next
$tBuffer = 0
Return $aResult
EndFunc ;==>_RasEnumConnections
$aConnection = _RasEnumConnections()
_Arraydisplay($aConnection, @error)
额,首先感谢楼上的大哥又费心思又费体力的敲了这么多
目前还没看懂,但我拿你的代码试了下
返回的数组里面没元素啊:face (32): 哦 我在试了下
也不是完全没
我断开VPN就有了
一连VPN就没。
如果只有一个VPN连的话也算是可以判断了
页:
[1]