freedom 发表于 2011-7-2 06:00:12

关于IP地址获取的问题。

我要怎么才能获取到指定了名字的VPN连接的IP?
我的VPN连接名称为4235

freedom 发表于 2011-7-2 19:40:28

顶上去,找高手帮忙啊。

chenronting 发表于 2011-7-2 21:16:47

还没有在VPN中使用过。
我知道的:Global $_Networdxx = _NetworkAdapterInfo();得到活动网卡的信息

这个是获取活动的网卡信息的,你试试。

freedom 发表于 2011-7-3 02:41:52

这个要调用什么UDF?

freedom 发表于 2011-7-4 20:13:13

这个能调用到物理网卡,或是虚拟机生成的虚拟网卡,VPN还是不行。

ye5022 发表于 2011-7-5 19:48:53

好像论坛上有相关udf吧!!

ye5022 发表于 2011-7-5 19:49:12

好像论坛上有相关udf吧!!

chenronting 发表于 2011-7-5 20:56:36

回复 5# freedom


    VPN没环境。。爱莫能助!

freedom 发表于 2011-7-5 21:54:45

回复 7# ye5022


都找完了。没有。要不就是获取的不精确。

#include <ACN_NET.au3>
_NetworkAdapterInfo()
这个不行。
#include <Inet.au3>
$VPNip=@IPAddress2
这个获取的时候只能获取一个。有的机器上能正确,有的机器上是
$VPNip=@IPAddress1

freedom 发表于 2011-7-5 21:55:13

回复 8# chenronting


要VPN账号密码,还有服务器地址我可以提供的。

xz00311 发表于 2011-7-6 20:29:03

UDF里面有一个IP方面的你可以看看

wsfda 发表于 2011-7-6 22:05:47

论坛有些和VPN相关的帖子,去搜索参考参考

freedom 发表于 2011-7-7 00:52:31

回复 11# xz00311


看过了。只有这两个
#include <Inet.au3>
#include <ACN_NET.au3>


论坛上搜VPN里面的都没有相关的。

chenronting 发表于 2011-7-13 21:54:54

本帖最后由 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;循环判断
        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;设置变量 i 的位置
                $net1=$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
                $net2=$temp
                _ArrayDisplay($net2, $i)
        EndIf
Next


Func _xinxifenjie($array, $i);得到连接详细信息的Func
        Local $Return
;~         _ArrayDisplay($array, $i)
        For $subi = $i To $array
                If $array[$subi] <> '' Then
                        Switch StringLeft(StringStripWS($array[$subi], 1), 4);先删除开头的空格,再得到前4个字符
                                Case 'Desc'
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 2
                                Case 'Phys'
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 2
                                Case 'IP A'
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 2
                                Case 'Subn'
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 2
                                Case 'Defa'
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 2
                                Case 'DNS '
                                        $Return = StringStripWS(StringStripWS(StringMid($array[$subi],StringInStr($array[$subi],':')+1),4),1)
                                        $subi += 3
                                        $Return = StringStripWS($array[$subi], 8)
                                        $Return = 8
                                        $Return=$subi
;~                                         _ArrayDisplay($Return, 'Debug~~~')
                                        Return $Return;返回数组
                        EndSwitch
                EndIf
        Next
EndFunc   ;==>_xinxifenjie

freedom 发表于 2011-7-14 03:00:07

回复 14# chenronting


win7 SP1 32位旗舰版,执行后没反应。
页: [1] 2
查看完整版本: 关于IP地址获取的问题。