tu0129 发表于 2013-4-27 12:39:02

【已解决】求助:网线被拔出后,如何获取网卡地址

本帖最后由 tu0129 于 2013-4-29 10:31 编辑

在帮助里和论坛里都没有找到关于网线拔出后如何的到网卡地址的帖子,最多有判断网卡是否被禁用和判断网线是否被拔出的,我知道网线被拔出后使用ipconfig/all命令还能获得网卡地址,请问如何直接使用au3获取呢?
如果直接使用au3无法实现,那用au3运行了DOS命令 ipconfig/all 后 如何能得到该DOS命令下得到的网卡地址呢,希望各位大侠帮忙解决,谢谢#include <Process.au3>

Local $rc = _RunDos("ipconfig/all")

MsgBox(4096, "测试", $rc)
这个代码不对,返回的是 0

lin6051 发表于 2013-4-27 20:31:26

本帖最后由 lin6051 于 2013-4-27 21:01 编辑

回复 1# tu0129


@IPAddress1
@IPAddress2

_NetworkAdapterInfo()
_GetAdaptersInfo()

xms77 发表于 2013-4-27 22:15:11

回复 1# tu0129
#include <Constants.au3>
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c ipconfig /all", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
   $lines &= $line
Wend
local $RegReturn = stringregexp($lines,'(\d{2}-\d{2}-\d{2}-\d{2}-\d{2}-\d{2})',1)
if not @error then
   MsgBox(0,"test",$RegReturn)
else
   MsgBox(0,'test','error')
endif

tu0129 发表于 2013-4-27 22:40:50

本帖最后由 tu0129 于 2013-4-27 22:42 编辑

回复 3# xms77
不行啊。返回 error,不是网卡地址

lin6051 发表于 2013-4-28 12:13:04

回复 4# tu0129


    网线被拔出后ipconfig/all 也只能得到物理地址,也就是mac地址,,和api和wmi得到的一样,可以读取注册表得到ip地址
测试xp sp3

lainline 发表于 2013-4-28 13:34:31

实际上只能读注册表 因为IP在插上网线的时候需要操作系统检验一遍是否有IP冲突 如果有冲突WINDOWS是不会强制设置IP的

tu0129 发表于 2013-4-29 10:30:01

回复 3# xms77


    多谢3楼,问题已解决,只是你的正则不对!修改下了下就实现了

xms77 发表于 2013-4-29 12:44:25

回复 7# tu0129
呵呵,忘了物理地址可以是字母的了。

tttbbb999 发表于 2013-5-2 19:54:06

为什么不用 Obj呢?那个多简单

zch11230 发表于 2013-5-3 11:32:32

本帖最后由 zch11230 于 2013-5-3 11:37 编辑

E? ipconfig /all 在网线拔出的情况下是看不到IP的吧楼主确定可用?

我眼睛瞎了 我以为是要IP 结果是要MAC

laomeng 发表于 2013-5-29 11:24:50

看看学了一招
页: [1]
查看完整版本: 【已解决】求助:网线被拔出后,如何获取网卡地址