找回密码
 加入
搜索
查看: 2417|回复: 6

[网络通信] 如何获取物理网卡的IP地址(已解决)

[复制链接]
发表于 2017-6-28 20:30:45 | 显示全部楼层 |阅读模式
本帖最后由 xymc 于 2017-6-28 21:52 编辑

有一个物理网卡,本地连接,也有可能是本地连接2/3
然后装了虚拟机后多了一个VMware Network Adapter VMnet1和VMware Network Adapter VMnet8
MsgBox (0,0,$@IPAddress1)出来的有些机是物理网卡的IP,有些机出来的是虚拟网卡的IP,
怎么样可以准确获取到物理网卡的内网IP?


Local $sNetInfo = ""
;查询本机网卡信息
Local $oWMI = ObjGet("winmgmts:\\.\root\cimv2")
Local $colNet= $oWMI.ExecQuery("Select * From Win32_NetworkAdapter Where NetConnectionID IS NOT NULL")
Local $oNet,$colConfig

For $oNet In $colNet
        If $oNet.NetConnectionStatus == 4 Or $oNet.NetConnectionStatus == 5 Then ContinueLoop        ;排除非活动状态的网卡
        If $oNet.NetConnectionID == "" Or StringInStr($oNet.name,"virtual") Then ContinueLoop        ;排除虚拟网卡
        $sNetInfo &= $oNet.NetConnectionID & @CRLF
Next
;MsgBox(0,"全部",$sNetInfo)
If $sNetInfo <> "" Then
        Local $text_sNetInfo = StringStripWS($sNetInfo, 3);删除左右空白字符
        $iPid = Run('ipconfig /all', @SystemDir, 0, 0x2)
        ProcessWait($iPid)
        $text = StdoutRead($iPid)
        $aRe = StringRegExp($text, '(?ism)^.*?(?:适配器|adapter)\h*' & $text_sNetInfo & ':.+?(?!:物理|physical )(?:地址|address).+?(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})', 3)
        If @error Then
                        MsgBox(32, 'err', '此网卡不存在')
        Else
                        MsgBox(64, $text_sNetInfo & ' ip:', $aRe[0])
        EndIf
EndIf


功能是实现了,但不是很理想,速度慢,而且有时会返回此网卡不存在!希望有高手优化一下。
发表于 2017-6-28 21:04:25 | 显示全部楼层
 楼主| 发表于 2017-6-28 21:12:50 | 显示全部楼层
回复 2# kk_lee69

这个只是显示网卡信息的
发表于 2017-6-28 21:23:52 | 显示全部楼层
回复 3# xymc
http://www.autoitx.com/forum.php ... hlight=%CD%F8%BF%A8


    http://www.autoitx.com/search.ph ... mp;searchsubmit=yes

怪了  難不成  現在回答問題 都還得包生孩子的??
這種網卡的問題 已經有很多源碼作品了吧
 楼主| 发表于 2017-6-28 21:35:01 | 显示全部楼层
回复 4# kk_lee69
帮我看看我那里哪里错了,2段分开是正常的,放一起就不行了
 楼主| 发表于 2017-6-28 21:40:10 | 显示全部楼层
找到问题了,是本地连接后面有空格
发表于 2018-9-21 16:27:51 | 显示全部楼层
楼主你好,我运行了一下,也是返回返回此网卡不存在,请问你说的本地连接后面有空格,是指网卡的名称后面带空格吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 23:37 , Processed in 0.080438 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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