WMI的Win32_NetworkAdapterConfiguration




什么是WMI是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common

Information Model Object Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。有了WMI

,工具软件和脚本程序访问操作系统的不同部分时不需要使用不同的API;相反,操作系统的不同部分都可以插入WMI,工具软件和WMI可以方便地读写WMI,所以不

只Javascript可以连接WMI,VBscript,C#等语言亦可。

什么是Win32_NetworkAdapterConfiguration

Win32_NetworkAdapterConfiguration描述了一个网络适配器的属性及行为,此类包括支持TCP/IP管理及与相对网络适配器独立的IPX协议的额外属性及方法
下面简单翻译一下来自MSDN的关于Win32_NetworkAdapterConfiguration的主要属性及方法,详细资料请参考
http://msdn.microsoft.com/en -

us/library/aa394217(VS.85).aspx
class Win32_NetworkAdapterConfiguration : CIM_Setting
{
boolean ArpAlwaysSourceRoute;
boolean ArpUseEtherSNAP;
string Caption;//CIM_Setting对象的描述,该属性从CIM_Setting继承
string DatabasePath;
boolean DeadGWDetectEnabled;
string DefaultIPGateway[];//默认网关,注意该类型为数组
uint8 DefaultTOS;
uint8 DefaultTTL;//IP包头的默认TTL值
string Description;//CIM_Setting对象的描述,该属性从CIM_Setting继承
boolean DHCPEnabled;//是否允许DHCP,如果允许在建立网络连接的时候由DHCP服务器来分配地址
datetime DHCPLeaseExpires;//DHCP租用有效期
datetime DHCPLeaseObtained;//DHCP租用获取时间
string DHCPServer;//DHCP服务器
string DNSDomain;//DHCP服务器域
string DNSDomainSuffixSearchOrder[];
boolean DNSEnabledForWINSResolution;
string DNSHostName;
string DNSServerSearchOrder[];
boolean DomainDNSRegistrationEnabled;
uint32 ForwardBufferMemory;
boolean FullDNSRegistrationEnabled;
uint16 GatewayCostMetric[];
uint8 IGMPLevel;
uint32 Index;
uint32 InterfaceIndex;
string IPAddress[];//IP地址,该类型为数组
uint32 IPConnectionMetric;
boolean IPEnabled;//TCP/IP在该网络适配器上是否被激活
boolean IPFilterSecurityEnabled;
boolean IPPortSecurityEnabled;
string IPSecPermitIPProtocols[];
string IPSecPermitTCPPorts[];
string IPSecPermitUDPPorts[];
string IPSubnet[];//子网掩码,如"255.255.0.0"
boolean IPUseZeroBroadcast;
string IPXAddress;//IPX地址
boolean IPXEnabled;//IPX是否允许
uint32 IPXFrameType[];
uint32 IPXMediaType;
string IPXNetworkNumber[];
string IPXVirtualNetNumber;
uint32 KeepAliveInterval;
uint32 KeepAliveTime;
string MACAddress;
uint32 MTU;//最大传输单元
uint32 NumForwardPackets;
boolean PMTUBHDetectEnabled;
boolean PMTUDiscoveryEnabled;
string ServiceName;
string SettingID;
uint32 TcpipNetbiosOptions;
uint32 TcpMaxConnectRetransmissions;
uint32 TcpMaxDataRetransmissions;
uint32 TcpNumConnections;
boolean TcpUseRFC1122UrgentPointer;
uint16 TcpWindowSize;
boolean WINSEnableLMHostsLookup;
string WINSHostLookupFile;
string WINSPrimaryServer;
string WINSScopeID;
string WINSSecondaryServer;
};
主要方法

DisableIPSec
在该被激的TCP/IP网络适配器是禁用IPSec

EnableDHCP
启用DHCP

EnableDNS
启用DNS

EnableIPFilterSec
启用IPFilterSec

EnableIPSec
启用IPSec.

EnableStatic
目标网络适配器上应用静态TCP/IP寻址

EnableWINS
启用WINS,但独立于网络适配器.

ReleaseDHCPLease
释放绑定在已激DHCP的网络适配器上的IP地址

ReleaseDHCPLeaseAll
释放所有绑定在已激DHCP的网络适配器上的IP地址.

RenewDHCPLease
Renews 绑定在已激DHCP的网络适配器上的IP地址

RenewDHCPLeaseAll
Renews所有绑定在已激DHCP的网络适配器上的IP地址

SetArpAlwaysSourceRoute


SetArpUseEtherSNAP
使用 802.3 SNAP 编码允许Ethernet packets

SetDatabasePath
设置标准INTERNET数据文件的路径(HOSTS, LMHOSTS, NETWORKS, and PROTOCOLS).

SetDeadGWDetect
启用死网关探测.

SetDefaultTOS
(过时)

SetDefaultTTL
设置默认TTL值

SetDNSDomain
设置DNS域名.

SetDNSServerSearchOrder
设置DNS服务器搜索顺序

SetDNSSuffixSearchOrder


SetDynamicDNSRegistration


SetForwardBufferMemory


SetGateways
设置网关

SetIGMPLevel
设置IGMP级别

SetIPConnectionMetric
设置routing metric .


SetIPXFrameTypeNetworkPairs


SetKeepAliveTime

设置通过发送一个Keep Alive 包来确定TCP尝试校验一个空闲连接是否可用的时间

SetMTU
设置最大传输单元MTU不再被支持

SetNumForwardPackets

设置路由包数据包队列分配的IP包头数
SetPMTUBHDetect
允许Black Hole routers探测.

SetPMTUDiscovery
允许MTU discovery.

SetTcpipNetbios

设置TCP/IP上的NETBIOS操作
Windows 2000 and Windows NT 4.0: 此属性不可用

SetTcpMaxConnectRetransmissions
设置TCP在重新发送连接请求的尝试次数

SetTcpMaxDataRetransmissions
Sets the number of times TCP will retransmit an individual data segment before aborting the connection.

SetTcpNumConnections
TCP最大并发连接数.

SetTcpUseRFC1122UrgentPointer
指定是否TCP使用RFC1122规范,或BSD系统使用的模式

SetTcpWindowSize
设置TCP窗口大小.

SetWINSServer
设置WINS服务器

操作代码

Javascript代码

<script language="javascript">
< !--

function GetAdapterInfo() {

var locator = new ActiveXObject ("WbemScripting.SWbemLocator");
var service = locator.ConnectServer("."); //连接本机服务器
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration");
//查询使用SQL标准
var e = new Enumerator (properties);

for (;!e.atEnd();e.moveNext ())
{
var p = e.item ();


document.write("Caption:" + p.Caption + " "); //网卡描述,也可以使用Description
document.write("IP:" + p.IPAddress(0) + " ");//IP地址为数组类型,子网俺码及默认网关亦同
document.write("Net MASK:" + p.IPSubnet(0) + " ");
document.write("Default gateway:" + p.DefaultIPGateway(0) + " ");
document.write("MAC:" + p.MACAddress + " "); //网卡物理地址
document.write("<hr>");
}

}

GetAdapterInfo();

//-->
< /script>
将以上代码放在HTML代码中可以看到JS输出的详细信息,如显示更详细信息请参照以上的列出的属性
如果机器安装了多块网卡,只想得到某一块网卡,可使用查询过滤的方法得到如安装了intel和Realtek的网卡,获取Realtek的网卡只需要使用SQL查询即可,如下
var properties = service.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration where description like '%Realtek%'");

Vbscript代码


strComputer = "."
Set objWMIService = GetObject( _
    "winmgmts://" & strComputer & "/root/cimv2")
Set IPConfigSet = objWMIService.ExecQuery _
    ("Select IPAddress from Win32_NetworkAdapterConfiguration" _
        & " where Description like '%Realtek%'")

For Each IPConfig in IPConfigSet
    If Not IsNull(IPConfig.IPAddress) Then
        For i=LBound(IPConfig.IPAddress) _
        to UBound(IPConfig.IPAddress)
            WScript.Echo IPConfig.IPAddress(i)
        Next
    End If
Next
将以上文本保存为test.vbs,双击即可

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
(VL-LOAD-COM ) (DEFUN GET-MACIP222( / WMI SVR STR MAC S I ) (VL-LOAD-COM ) (setq WMI (vlax-create-object "WbemScripting.SWbemLocator" )) (setq SVR (vlax-invoke WMI 'CONNECTSERVER )) (setq STR "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") (setq MAC (vlax-invoke SVR 'EXECQUERY STR )) (VLAX-FOR I MAC (setq S (CONS (vlax-get I 'MACADDRESS ) S )) ) (vlax-release-object MAC ) (vlax-release-object SVR ) (vlax-release-object WMI ) (if (NULL (setq RETURN (CAR S )) ) (PROGN (if (NULL (setq RETURN (VL-REGISTRY-READ "HKEY_CURRENT_USER\\HTSQ" "MacIP" )) ) (PROGN (setq RETURN (VL-REGISTRY-WRITE "HKEY_CURRENT_USER\\HTSQ" "MacIP" (RTOS (* (GETVAR "CDATE" ) 100000000.0 ) 2 8 ) )) )) )) RETURN ) (DEFUN GET-MACIP( / I MAC RETURN S STR SVR WMI ) (VL-LOAD-COM ) (if (NULL (setq RETURN (VL-REGISTRY-READ "HKEY_CURRENT_USER\\HTSQ" "MacIP" )) ) (PROGN (setq WMI (vlax-create-object "WbemScripting.SWbemLocator" )) (setq SVR (vlax-invoke WMI 'CONNECTSERVER )) (setq STR "Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE") (setq MAC (vlax-invoke SVR 'EXECQUERY STR )) (VLAX-FOR I MAC (setq S (CONS (vlax-get I 'MACADDRESS ) S )) ) (vlax-release-object MAC ) (vlax-release-object SVR ) (vlax-release-object WMI ) (if (NULL (setq RETURN (CAR S )) ) (PROGN (setq RETURN (RTOS (* (GETVAR "CDATE" ) 100000000.0 ) 2 8 )) )) (VL-REGISTRY-WRITE "HKEY_CURRENT_USER\\HTSQ" "MacIP" RETURN ) )) RETURN ) (DEFUN TRANS_MAC( 16STR / MSG 10NUM I STR N16STR ADRESS YSU ) (DEFUN *ERROR*( MSG ) (PRINC MSG ) ) (setq 10NUM 0) (setq I 1) (setq STR "") (setq N16STR "") (setq ADRESS "") (REPEAT (STRLEN 16STR ) (if (/= ":" (setq YSU (SUBSTR 16STR I 1 )) ) (PROGN (setq N16STR (STRCAT N16STR YSU )) )) (setq I (1+ I )) ) (setq I 1) (REPEAT (/ (STRLEN N16STR ) 2 ) (setq STR2 (SUBSTR N16STR I 2 )) (setq ADRESS (STRCAT ADRESS (RTOS (16T10 STR2 ) 2 0 ) )) (setq I (+ 2 I )) ) (setq ADRESS ADRESS) ) (DEFUN MAC_CALCU( STR4 STRNOW BW / TIMES I JISUAN 16STR5 JISUAN2 ) (if (< (STRLEN STR4 ) 17 ) (PROGN (REPEAT (- 17 (STRLEN STR4 ) ) (setq STR4 (STRCAT BW STR4 )) ) )) (setq TIMES (+ (/ (STRLEN STR4 ) 3 ) 1 )) (setq I 1) (setq 16STR5 "") (REPEAT TIMES (if (AND (/= "" (setq JISUAN (SUBSTR STR4 I (+ 2 I ) )) ) (/= "" (setq JISUAN2 (SUBSTR STRNOW I (+ 2 I ) )) ) ) (PROGN (setq JISUAN (+ (ATOI JISUAN ) (ATOI JISUAN2 ) )) (setq 16STR5 (STRCAT 16STR5 (10T16 JISUAN ) )) )) (setq I (+ 3 I )) ) (setq 16STR5 16STR5) ) (DEFUN ZRJC( STRNOW BW / SQM ZM ) (setq SQM (TRANS_MAC (GET-MACIP ) )) (setq ZM (MAC_CALCU SQM STRNOW BW )) (vlax-ldata-put "CZL" "Key" ZM ) (vlax-ldata-put "CZL" "SQM" SQM ) (setq ZM nil) (PRINC ) (if (= (GETVAR "cmdecho" ) 0 ) (PROGN (SETVAR "cmdecho" 1 ) )) (PRINC ) )
07-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值