找回密码
 加入
搜索
查看: 7369|回复: 14

[系统综合] 所有网卡所有信息代码

 火.. [复制链接]
发表于 2010-4-12 23:47:28 | 显示全部楼层 |阅读模式
求一段AU3代码,要求实现如下目标:获取本机所有网卡(有线网卡+无线网卡)的连接名、IP、子网掩码、网关、DNS、MAC、,然后将结果生成在与代码同目录的记事本中
说明:对于同时有无线网卡和有线网卡的笔记本,要达到同时判断出来的目的,不管有线网卡和无线网卡是不是在使用中,只要不是禁用就行,禁用就提示出错,最后所有的网卡信息全放在记事本中,便于复制。
发表于 2010-4-12 23:50:20 | 显示全部楼层
自己尝试写吧,这个不难。
发表于 2010-4-12 23:58:13 | 显示全部楼层
本帖最后由 dtooboss 于 2010-4-13 00:22 编辑

方法一
#include <Process.au3>
_RunDOS('ipconfig /all > log.txt')
_RunDOS('Notepad.exe log.txt')
三行搞定。

方法二
#include <ACN_NET.au3>
$info = _NetworkAdapterInfo()
FileWrite("info.txt", "网卡名称:" & $info[1][1] & @CRLF & "连接名称:" & $info[1][9] & @CRLF & "DNS主机名称:" & $info[1][3] _
         & @CRLF & "IP地址:" & $info[1][4] & @CRLF & "子网掩码:" & $info[1][7] & @CRLF & "默认网关:" & $info[1][2] _
   & @CRLF & "主DNS:" & $info[1][5] & @CRLF & "次DNS:" & $info[1][6] & @CRLF & "MAC地址:" & $info[1][8])
Run("Notepad.exe info.txt", "", @SW_MAXIMIZE)   
多了点......

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2010-4-13 09:07:51 | 显示全部楼层
回复 3# dtooboss
方法一:简单有效。但对同时有无线网卡和有线网卡的笔记本,其余一个网卡信息显示不全。
方法二:判断有问题,对同时有无线网卡和有线网卡的笔记本,只能判断当前使用中的网卡。其余网卡即使不禁用也判断不出来。
发表于 2010-4-13 11:33:02 | 显示全部楼层
貌似这个要查注册表的。所有的网卡信息,只要是曾经使用过的,都应该可以从注册表中查到。
HKEY_LOCAL_MCHINE\SYSTEM\CurrentControlSet\Control\Network 下面可以查到连接名称;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Inrefaces 下面可以查到IP、子网掩码、网关、DNS等其他信息。

记不大清楚了,可能不是很准确,但查注册表这个方法是没错的。

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-4-13 12:51:02 | 显示全部楼层
回复  dtooboss
方法一:简单有效。但对同时有无线网卡和有线网卡的笔记本,其余一个网卡信息显示不全。
...
jsbhwxw 发表于 2010-4-13 09:07


_NetworkAdapterInfo() 函数有点问题,试试下面的。
#include <Array.au3>
$Info = _Info()
_ArrayDisplay($Info, "NetworkAdapterInfo")


Func _Info()

        Local $colItem
        Local $objItem
        Local $colItems
        Local $objItems
        Local $objWMIService
        Local $Adapters[1][10]
        $Adapters[0][0] = 0
        $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
        $colItem = $objWMIService.ExecQuery("Select * FROM Win32_NetworkAdapter Where NetConnectionStatus >0", "WQL", 0x30)
        If IsObj($colItem) Then
                For $objItem In $colItem
                        If $objItem.MACAddress = "00:00:00:00:00:00" Then ContinueLoop
                        $Adapters[0][0] += 1
                        ReDim $Adapters[UBound($Adapters) + 1][10]
                        $Adapters[$Adapters[0][0]][0] += $Adapters[0][0]
                        $Adapters[$Adapters[0][0]][1] = $objItem.NetConnectionStatus
                        $Adapters[$Adapters[0][0]][2] = $objItem.Description
                        $Adapters[$Adapters[0][0]][3] = $objItem.NetConnectionID
                        $Adapters[$Adapters[0][0]][4] = $objItem.MACAddress
                        $colItems = $objWMIService.ExecQuery('Select * FROM Win32_NetworkAdapterConfiguration Where MACAddress = "' & $Adapters[$Adapters[0][0]][4] & '" And IPEnabled = True ', "WQL", 0x30)
                        If IsObj($colItems) Then
                                For $objItems In $colItems
                                        $Adapters[$Adapters[0][0]][5] = $objItems.IPAddress(0)
                                        $Adapters[$Adapters[0][0]][6] = $objItems.DefaultIPGateway(0)
                                        $Adapters[$Adapters[0][0]][7] = $objItems.IPSubnet(0)
                                        $Adapters[$Adapters[0][0]][8] = $objItems.DNSServerSearchOrder(0)
                                        $Adapters[$Adapters[0][0]][9] = $objItems.DNSServerSearchOrder(1)
                                Next
                        EndIf
                Next
        EndIf

        Return $Adapters

EndFunc   ;==>_Info

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

发表于 2010-4-13 13:25:01 | 显示全部楼层
回复 6# dtooboss
不错!
 楼主| 发表于 2010-4-13 16:12:57 | 显示全部楼层
本帖最后由 jsbhwxw 于 2010-4-13 16:16 编辑

回复 6# dtooboss
经测试,对同时有无线网卡和有线网卡的笔记本,第二个网卡的信息依旧是显示不全,还有一个问题,显示出来的网卡信息,我认为可以放在记事本中,虽然原程序在显示结果的下面有一个复制按钮,但如果先复制再粘贴,我认为好像多此一举,还不如直接把结果生成在记事本中。
发表于 2010-4-13 16:56:22 | 显示全部楼层
回复  dtooboss
经测试,对同时有无线网卡和有线网卡的笔记本,第二个网卡的信息依旧是显示不全,还有一个 ...
jsbhwxw 发表于 2010-4-13 16:12


1,不知道你的无线网卡是什么样的?usb ? 3G 上网卡?
2,信息的保存为记事本很简单,你自己稍微改改代码就行了。
 楼主| 发表于 2010-4-13 18:58:25 | 显示全部楼层

对同时有无线网卡和有线网卡的笔记本,第二个网卡的信息依旧是显示不全

本帖最后由 jsbhwxw 于 2010-4-13 20:49 编辑

回复 9# dtooboss
看来要拿出证据出来才能相信的了,等一下,我准备上图。要保存到电脑上放大才能看清楚。从这个图至少可以看出两个问题,第一个问题是,对同时有无线网卡和有线网卡的笔记本,第二个网卡的信息依旧是显示不全,说明一下,我的无线网卡是最普通的那种,MIN-PCI-E,内置的,无线网卡的IP 子网掩码 网关设置齐全,但都没有显示出来。第二个问题是备用DNS如果是空白的话,判断出来的信息竟然是谁也不知道是什么意思的符号,就是图中的“?退???”

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2010-4-13 19:28:23 | 显示全部楼层
呵呵,跟着学习。
发表于 2010-4-14 11:41:18 | 显示全部楼层
6楼的不错,学习了。
发表于 2010-4-14 13:32:29 | 显示全部楼层
不错的方法,借鉴一下
发表于 2010-4-14 21:19:49 | 显示全部楼层
呵呵,学习一下。。
发表于 2010-4-17 08:41:04 | 显示全部楼层
呵呵,学习一下。。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-20 07:26 , Processed in 0.102905 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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