找回密码
 加入
搜索
查看: 7069|回复: 18

[系统综合] 关于IP地址获取的问题。

 火.. [复制链接]
发表于 2011-7-2 06:00:12 | 显示全部楼层 |阅读模式
我要怎么才能获取到指定了名字的VPN连接的IP?
我的VPN连接名称为  4235
 楼主| 发表于 2011-7-2 19:40:28 | 显示全部楼层
顶上去,找高手帮忙啊。
发表于 2011-7-2 21:16:47 | 显示全部楼层
还没有在VPN中使用过。
我知道的:Global $_Networdxx = _NetworkAdapterInfo();得到活动网卡的信息

这个是获取活动的网卡信息的,你试试。
 楼主| 发表于 2011-7-3 02:41:52 | 显示全部楼层
这个要调用什么UDF?
 楼主| 发表于 2011-7-4 20:13:13 | 显示全部楼层
这个能调用到物理网卡,或是虚拟机生成的虚拟网卡,VPN还是不行。
发表于 2011-7-5 19:48:53 | 显示全部楼层
好像论坛上有相关udf吧!!
发表于 2011-7-5 19:49:12 | 显示全部楼层
好像论坛上有相关udf吧!!
发表于 2011-7-5 20:56:36 | 显示全部楼层
回复 5# freedom


    VPN没环境。。爱莫能助!
 楼主| 发表于 2011-7-5 21:54:45 | 显示全部楼层
回复 7# ye5022


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

#include <ACN_NET.au3>
  _NetworkAdapterInfo()
这个不行。
#include <Inet.au3>
$VPNip=@IPAddress2
这个获取的时候只能获取一个。有的机器上能正确,有的机器上是
$VPNip=@IPAddress1
 楼主| 发表于 2011-7-5 21:55:13 | 显示全部楼层
回复 8# chenronting


要VPN账号密码,还有服务器地址我可以提供的。
发表于 2011-7-6 20:29:03 | 显示全部楼层
UDF里面有一个IP方面的你可以看看
发表于 2011-7-6 22:05:47 | 显示全部楼层
论坛有些和VPN相关的帖子,去搜索参考参考
 楼主| 发表于 2011-7-7 00:52:31 | 显示全部楼层
回复 11# xz00311


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


论坛上搜VPN里面的都没有相关的。
发表于 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[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
 楼主| 发表于 2011-7-14 03:00:07 | 显示全部楼层
回复 14# chenronting


win7 SP1 32位  旗舰版,执行后没反应。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-20 06:25 , Processed in 0.087333 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表