vbs脚本自动获取本个活动网卡mac地址

合集下载

JS获取IP、MAC和主机名的五种方法

JS获取IP、MAC和主机名的五种方法

JS获取IP、MAC和主机名的五种⽅法今天在搞JS(javascript)获取客户端IP的⼩程序,上⽹搜了下,好多在现在的系统和浏览器中的都⽆效,很⽆奈,在Chrome、FireFox中很少搞到直接利⽤ActiveX获取IP等的JS脚本。

下⾯的代码是我在所有windowsNT5.0及以上的系统上都测试通过的,给出代码:⽅法⼀(只针对IE且客户端的IE允许AcitiveX运⾏,通过平台:XP,SERVER03,2000):获取客户端IP。

复制代码代码如下:<HTML><HEAD><TITLE>GetLocalIP</TITLE></HEAD><BODY>获取IP:<script language="JavaScript"> function GetLocalIPAddr(){ var oSetting = null; var ip = null; try{ oSetting = new ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if (ip.length == 0){ return "没有连接到Internet"; } oSetting = null; }catch(e){ return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>") </script></BODY></HTML>⽅法⼆(所有的平台及浏览器):获取客户端处在⽹络中的IP,前提是客户得联⽹。

复制代码代码如下:<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>JavaScript获取客户端IP[利⽤新浪接⼝]</title></head><body><script type="text/javascript" src="/ip/" charset="gb2312"></script> <!--获取接⼝数据,注意charset --><script type="text/javascript">document.writeln("IP地址:"+ILData[0]+"<br />"); //输出接⼝数据中的IP地址document.writeln("地址类型:"+ILData[1]+"<br />"); //输出接⼝数据中的IP地址的类型document.writeln("地址类型:"+ILData[2]+"<br />"); //输出接⼝数据中的IP地址的省市document.writeln("地址类型:"+ILData[3]+"<br />"); //输出接⼝数据中的IP地址的document.writeln("地址类型:"+ILData[4]+"<br />"); //输出接⼝数据中的IP地址的运营商</script></body></html>⽅法三(只针对IE且客户端的IE允许AcitiveX运⾏):调⽤VBS脚本,获取计算机名(有些⼈不知道什么是计算机名,简单解释就是它是这台机器的物理名称⽽不是你在⽤的那个⽤户名)和登录的⽤户名。

vbs修改mac

vbs修改mac
Exit For
End If
Next
'重启网卡
For i = 1 To 2
For Each verb in oLanConnection.verbs
If RegExpTest("启用|禁用|停止", )>0 Then
WshShell.RegWrite reg & "\Ndi\params\NetworkAddress\optional" , "1" , "REG_SZ"
'得到网卡的名称,比如“本地连接 2”
NetWorkName = WshShell.RegRead("HKLM\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\" & WshShell.RegRead(reg & "\NetCfgInstanceId") & "\Connection\Name")
verb.DoIt
Exit For
End If
Next
'有时网卡半天反应不过来,可以把这个参数设的大点一般程序可以正常运行,或您多运行几次程序
WScript.Sleep 5000
If RegExpTest("[^\da-fA-F]", MAC)>0 Or Len(MAC)<>12 Then
WScript.Echo "MAC输入有误,退出"
Wscript.Quit
End If

JAVA实现获取MAC地址

JAVA实现获取MAC地址

JAVA实现获取MAC地址获取MAC地址是通过Java程序来获取设备的物理地址,MAC地址是网卡的唯一标识符,用于在网络中唯一地标识一个设备。

Java中获取MAC地址的实现方式有多种,下面将介绍几种常用的方式:1. 使用InetAddress类和NetworkInterface类```javapublic class GetMacAddresspublic static void main(String[] args)tryInetAddress ipAddress = InetAddress.getLocalHost(;NetworkInterface networkInterface =NetworkInterface.getByInetAddress(ipAddress);byte[] macAddressBytes =networkInterface.getHardwareAddress(;StringBuilder macAddressBuilder = new StringBuilder(;for (int i = 0; i < macAddressBytes.length; i++)macAddressBuilder.append(String.format("%02X%s", macAddressBytes[i], (i < macAddressBytes.length - 1) ? "-" : ""));}String macAddress = macAddressBuilder.toString(;System.out.println("MAC Address: " + macAddress);} catch (UnknownHostException , SocketException e)e.printStackTrace(;}}```这种方法通过获取本机的InetAddress对象,然后通过该对象获取对应的NetworkInterface对象,再通过该对象获取硬件地址(MAC地址),最后将硬件地址格式化成常见的xx-xx-xx-xx-xx-xx形式。

获取笔记本无线网卡MAC地址方法1、在开始菜单中点击运行栏

获取笔记本无线网卡MAC地址方法1、在开始菜单中点击运行栏

获取笔记本无线网卡MAC地址方法1、在开始菜单中点击运行栏今天由于个人原因需要将我的笔记本的有线网卡的物理MAC地址和无线网卡的物理MAC地址对调一下,我像平常修改网卡MAC地址一样,步聚如下:点击菜单“开始”/设置/控制面板,双击“系统”,点击“硬件”/设备管理器,在设备管理器中展开“网络适配器”,右击要修改MAC 地址的网卡,选择“属性”;点击“高级”选项卡,在“属性”下,选择点击NetworkAddress项目,在右侧“值”的下方,输入你要指定的MAC地址值(例如01C502789902),注意要连续输入12个数字或字母(中间不要输入-);重新启动电脑后,修改即可生效。

但是当我打开我的无线网卡属性的时候,却并没有找到我想要的东西,看来这个无线网卡设置还不一样,于是只得另想其它办法了,那么到底如何修改无线网卡的MAC地址呢?往下看。

经查,我的无线网卡使用的非RTL8139芯片的网卡,对于非RTL8139芯片的网卡,你可以直接修改注册表中的MAC,注意:修改注册表前,要先备份注册表。

系统:Win2003/XP/2000开始工作了:点击“开始”/运行,输入regedit打开注册表,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E9 72-E325-11CE-BFC1-08002BE10318}\0000、0001、0002、0003、0004、0005、0006、0007、0008、0009、0010、0011、0012等主键下,查找DriverDesc的内容,了解网卡使用了哪个主键(例如0011),如果主键下有params项,则该主键也是网卡所使用的;例如网卡使用了0011主键,因此我们就选中它,在其右边建一个字符串项(名为NetworkAddress),双击该串,输入你指定的MAC地址值(注意应该是12位的连续数字或字母,其间没有-号);在0011下的NDI\params中添加一项子键(名为NetworkAddress),选择该子键,在其右边添加名为default的字符串,键值为修改后的MAC地址,与上面的数值相同;修改后重启生效。

用批处理自动绑定本机MAC与IP和网关的MAC与IP

用批处理自动绑定本机MAC与IP和网关的MAC与IP

用批处理自动绑定本机MAC与IP和网关的MAC与IP因为单位网络划分了VLAN,如果手工做批处理,每个VLAN的网关不同,则要做好几个不同的BAT文件,或者以后万一网关的网卡坏了,则每台客户机的绑定还得重做,所以今天在网上找了个自动绑定本机MAC与IP和网关的MAC与IP的批处理代码,实验已经通过,大家可以放心使用!1、使用方法:将下面的代码复制为一个BAT文件,加入启动组即可!文件名最好不要为ARP.BAT,防止被杀软干掉!echo off:::::::::读取本机Mac地址if exist ipconfig.txt del ipconfig.txtipconfig /all >ipconfig.txtif exist phyaddr.txt del phyaddr.txtfind "Physical Address" ipconfig.txt >phyaddr.txtfor /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M:::::::::读取本机ip地址if exist IPAddr.txt del IPaddr.txtfind "IP Address" ipconfig.txt >IPAddr.txtfor /f "skip=2 tokens=15" %%I in (IPAddr.txt) do set IP=%%I:::::::::绑定本机IP地址和MAC地址arp -s %IP% %Mac%:::::::::读取网关地址if exist GateIP.txt del GateIP.txtfind "Default Gateway" ipconfig.txt >GateIP.txtfor /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G :::::::::读取网关Mac地址if exist GateMac.txt del GateMac.txtarp -a %GateIP% >GateMac.txtfor /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H :::::::::绑定网关Mac和IParp -s %GateIP% %GateMac%del GateIP.TXT /QDEL GateMac.txt /qdel IPAddr.txt /qdel ipconfig.txt /qdel phyaddr.txt /qexit下面是运行后的截图2、要想让系统启动时不出现BAT文件运行时的黑框(一闪即过)可以编一个VBS文件调用BAT文件,使运行BAT文件时不显示命令窗口。

一些常用的VBS脚本

一些常用的VBS脚本

一些常用的VBS脚本、批处理和注册表2007-10-10 18:36======打开迅闪菜单的同时连接虚拟磁盘的VBS======Set WshShell = WScript.CreateObject("WScript.Shell")Return = WshShell.Run ("c:\client\新调用.exe",0,true)Return = WshShell.Run ("iscsicli AddTargetPortal 192.168.0.9 3260",0,true)Return = WshShell.Run ("iscsicli LoginTarget .ricecake.iscsi:00 T * * Set WshShell = Nothing======开机VBS调用远程批处理(延时+无黑屏后台运行的效果)======DIM objShellset objShell=wscript.createObject("wscript.shell")WScript.Sleep(10000)iReturn=objShell.Run("cmd.exe /C \\server\E\123.bat", 0, TRUE)======修改IE状态栏显示字符的注册表======Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\ @="""DisplayName"="XX网吧"====== 批处理获得本机的IP和MAC地址然后进行绑定======@echo offfor /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find /i "Physical Address"') do s for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find /i "IP Address"') do set ip= arp -s %ip:~1% %Mac:~1%======强制刷新组策略和注册表======xp/2003命令gpupdate /force2k命令secedit /refreshpolicy machine_policy /enforce====== 批处理修改IE主页======@reg delete "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start P @reg add "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main" /v "Start Page======解除禁止下载的几种方法======VBS代码:DIM WSHSET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")WSH.POPUP("本程序的作用是解决无法下载的问题")WSH.Regwrite"HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones03 WSH.POPUP("现在您可以下载程序了!")JS代码:VAR WSHShell=WSCRIPT.CREATOBJEt("WSCRIPT.SHELL");WSHShell.Popup("本程序解决无法下载的问题,");WSHShell.RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZINF代码[Version]Signature="$CHICAGO$"[DefaultInstall]DelReg=Del[Del]HKCU,"Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones",1803====== 屏蔽WIN2003开机弹出的错误对话框:在系统启动时至少有一个服务或驱动程序产生错误Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows] "NoPopUpsOnBoot"=dword:00000001======导入注册表不给任何提示的方法============简单三步,更改序列号解决WINDOWS XP在线升级问题======1)在〔开始〕→〔执行〕→〔Regedit〕→〔HKEY_LOCAL_MACHINE〕→〔SOFTWARE〕→〔Micros 〔Windows NT〕→〔CurrentVersion〕在〔WPAEvents〕内将〔OOBETimer〕的头两个数值〔FF〕2)在〔开始〕→〔执行〕→〔oobe/msoobe /a〕进入〔启动画面〕→选择第二项〔电话启动〕3)在进入下一个视窗,选择〔change product key〕来修改序列号及输入新的序列号,完成后点重新启动电脑后在〔开始〕→〔执行〕→〔oobe/msoobe /a〕进入〔启动画面〕时应该显示已经启KLV,VOL版用户可用序列号:MRX3F-47B9T-2487J-KWKMF-RPWBY(工行版) 可用QC986-27D34-6M3TY-JJXP9-TBGMD(台湾交大学生版) 可用CM3HY-26VYW-6JRYC-X66GX-JVY2D 可用DP7CM-PD6MC-6BKXT-M8JJ6-RPXGJ 可用F4297-RCWJP-P482C-YY23Y-XH8W3 可用HH7VV-6P3G9-82TWK-QKJJ3-MXR96 可用HCQ9D-TVCWX-X9QRG-J4B2Y-GR2TT 可用======去除系统面板上的远程和系统还原选项======regsvr32 /u remotepg.dllregsvr32 /u wuaueng.dll======冒险岛刷新率设置成85HZ的注册表(对玩冒险岛黑屏的兄弟有用)======Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Wizet\MapleStory]"ExecPath"="E:\\OnlineGame\\冒险岛""EKEYUSE"=dword:00000000"DGTIDUSE"=dword:00000000"RMA"=dword:00000000"LMA"="""LCWN"="""scrFirstRun"=dword:00000000"soVideo"=dword:00000003"soBGMVol"=dword:0000000f"soBGMMute"=dword:00000000"soSEVol"=dword:0000000f"soSEMute"=dword:00000000"soScreenShot"=dword:00000000"soMouseSpeed"=dword:0000000a"soHPFlash"=dword:0000000a"soTremble"=dword:00000001"jpBtn0"=dword:00000000"jpBtn1"=dword:00000000"jpBtn2"=dword:00000000"jpBtn3"=dword:00000000"jpBtn4"=dword:00000000"jpBtn5"=dword:00000000"jpBtn6"=dword:00000000"jpBtn7"=dword:00000000"jpBtn8"=dword:00000000"scrRRate"=dword:00000055======QQ面板上点QQ游戏无反映的解决注册表(一定是做母盘的时候没有运行过QQ游戏吧?)Windows Registry Editor Version 5.00Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Tencent\QQGame\SYS]"HallDirectory"="e:\\网游平台\\QQGame\\""GameDirectory"="e:\\网游平台\\QQGame\\"[HKEY_LOCAL_MACHINE\Software\Classes\CLSID]"CLBVersion"=dword:00000007[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{11BEA40D-ED62-4996-B157-B6D9C637F2A5}\Inp "ThreadingModel"="Apartment"[HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{B59750C3-29F1-44AA-BFA8-E5F6D3CE8596}\InP "ThreadingModel"="Both"[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{AA21B901-1642-4AB2-9C1C-A09B2412CC89} "Version"="1.0"[HKEY_LOCAL_MACHINE\Software\Classes\Interface\{B2167A4F-BC4D-4DA7-90BF-C4BAF7D76714} "Version"="1.0"[HKEY_LOCAL_MACHINE\Software\Tencent\QQGame\SYS]"HallDirectory"="E:\\网游平台\\QQGame\\""GameDirectory"="E:\\网游平台\\QQGame\\"======运行共享里的EXE不给予提示的方法======IE--Internet 选项--安全--自定义级别--安全设置--加载应用程序和不安全文件:选择|启用|即======制作2003系统最重要的步骤:让2003象XP一样兼容游戏======修改boot.ini为:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows Server 2003, Standard" /NoExecut 此方法等同于:我的电脑--属性--高级--性能--设置--数据执行保护,选择|只为关键Windows程======如果你的2003不能在线升级和打补丁,试试这个注册表======Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion] "ProductId"="69713-640-9722366-45198"[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion] "CurrentBuild"="1.511.1 () (Obsolete data - do not use)""InstallDate"=dword:3f6c976d"ProductName"="Microsoft Windows Server 2003""RegDone"="""Software Type"="SYSTEM""CurrentVersion"="5.2""CurrentBuildNumber"="3790""BuildLab"="3790.srv03_rtm.030324-2048""CurrentType"="Uniprocessor Free""ProductId"="69713-640-9722366-45198""DigitalProductId"=hex:a4,00,00,00,03,00,00,00,36,39,37,31,33,2d,36,34,30,2d,39,37,32 00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,31,32,32,32,3"LicenseInfo"=hex:71,84,c7,56,a0,d6,10,6e,70,b4,9f,e9,10,1a,1e,7a,01,a4,41,09,25,20,0。

VBA高级运用

VBA高级运用

常用VBS代码1.VBS获取路径集合1.1.VBS获取系统安装路径程序代码set WshShell = WScript.CreateObject("WScript.Shell")strWinDir = WshShell.ExpandEnvironmentStrings("%WinDir%")上面的代码意思是先定义这个变量是获取系统安装路径的,然后我们用"&strWinDir&"调用这个变量。

1.2.C:\Program Files路径程序代码msgbox CreateObject("WScript.Shell").ExpandEnvironmentStrings("%ProgramFiles%")1.3.C:\Program Files\Common Files路径程序代码msgbox CreateObject("WScript.Shell").ExpandEnvironmentStrings("%CommonProgramFiles%")2.给桌面添加网址快捷方式程序代码set gangzi = WScript.CreateObject("WScript.Shell")strDesktop = gangzi.SpecialFolders("Desktop")set oShellLink = gangzi.CreateShortcut(strDesktop & "\Internet Explorer.lnk") oShellLink.TargetPath = ""oShellLink.Description = "Internet Explorer"oShellLink.IconLocation = "%ProgramFiles%\Internet Explorer\iexplore.exe, 0" oShellLink.Save3.给收藏夹添加网址程序代码Const ADMINISTRATIVE_TOOLS = 6Set objShell = CreateObject("Shell.Application")Set objFolder = space(ADMINISTRATIVE_TOOLS)Set objFolderItem = objFolder.SelfSet objShell = WScript.CreateObject("WScript.Shell")strDesktopFld = objFolderItem.PathSet objURLShortcut = objShell.CreateShortcut(strDesktopFld & "\小游戏网站.url") objURLShortcut.TargetPath = "/?ie"objURLShortcut.Save4.删除指定目录指定后缀文件程序代码On Error Resume NextSet fso = CreateObject("Scripting.FileSystemObject")fso.DeleteFile "C:\*.vbs", TrueSet fso = Nothing上面代码为删除C盘根目录下后缀为vbs的文件5.VBS改主页程序代码Set oShell = CreateObject("WScript.Shell")oShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\Start Page",""6.VBS加启动项程序代码Set oShell=CreateObject("Wscript.Shell")oShell.RegWrite "HKLM\Software\Microsoft\Windows\CurrentVersion\Run\cmd","cmd.exe"7.VBS复制自己程序代码set copy1=createobject("scripting.filesystemobject")copy1.getfile(wscript.scriptfullname).copy("c:\huan.vbs")复制自己到C盘的huan.vbs程序代码set copy1=createobject("scripting.filesystemobject")copy1.getfile("game.exe").copy("c:\gangzi.exe")复制本vbs目录下的game.exe文件到c盘的gangzi.exe8.VBS获取系统临时目录程序代码Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")Dim tempfolderConst TemporaryFolder = 2Set tempfolder = fso.GetSpecialFolder(TemporaryFolder)Wscript.Echo tempfolder9.就算代码出错依然继续执行程序代码On Error Resume Next10.VBS打开网址程序代码Set objShell = CreateObject("Wscript.Shell")objShell.Run("/")11.VBS发送邮件程序代码NameSpace = "/cdo/configuration/" Set Email = CreateObject("CDO.Message")Email.From = "发件@"Email.To = "收件@"Email.Subject = "Test sendmail.vbs"Email.Textbody = "OK!"Email.AddAttachment "C:\1.txt"With Email.Configuration.Fields.Item(NameSpace&"sendusing") = 2.Item(NameSpace&"smtpserver") = "smtp.邮件服务器.com".Item(NameSpace&"smtpserverport") = 25.Item(NameSpace&"smtpauthenticate") = 1.Item(NameSpace&"sendusername") = "发件人用户名".Item(NameSpace&"sendpassword") = "发件人密码".UpdateEnd WithEmail.Send12.VBS结束进程程序代码strComputer = "."Set objWMIService = GetObject _("winmgmts:\\" & strComputer & "\root\cimv2")Set colProcessList = objWMIService.ExecQuery _("Select * from Win32_Process Where Name = 'Rar.exe'") For Each objProcess in colProcessListobjProcess.Terminate()Next13.VBS隐藏打开网址13.1.部分浏览器无法隐藏打开,而是直接打开,适合主流用户使用程序代码createObject("wscript.shell").run "iexplore /",013.2.兼容所有浏览器,使用IE的绝对路径+参数打开,无法用函数得到IE安装路径,只用函数得到了Program Files路径,应该比上面的方法好,但是两种方法都不是绝对的。

获取mac地址的几种方法

获取mac地址的几种方法

方法一:通过NetBIOS[N‎e tbios is not suppor‎t ed on Windows Vista‎, Windows Server 200‎8, and subsequent ve‎r sions of the operat‎i ng system]#includ‎e <windows.h>#pragm‎a comment(lib, "Neta‎p i32.lib")namespac‎e{bool GetAdapterI‎n fo(int adapterNum, ‎s td::string& macOUT)‎{NCB Ncb;memset(&‎N cb, 0, sizeof(Ncb))‎;Ncb.ncb_command = ‎N CBRESET; // 重置网卡,以便‎我们可以查询Ncb.ncb_lana_‎n um = adapterNum;if‎(Netbios(&Ncb) != N‎R C_GOODRET)return f‎a lse;// 准备取得接口卡的状态‎块memset(&Ncb, sizeo‎f(Ncb), 0);Ncb.ncb_‎c ommand = NCBASTAT;‎N cb.ncb_lana_num = a‎d apterNum;strcpy((c‎h ar *) Ncb.ncb_calln‎a me, "*");struct AS‎T AT{ADAPTER_STATUS‎adapt;NAME_BUFFER ‎n ameBuff[30];}adapt‎e r;memset(&adapter,‎s izeof(adapter), 0);‎Ncb.ncb_buffer = (u‎n signed char *)&adap‎t er;Ncb.ncb_length ‎= sizeof(adapter);i‎f (Netbios(&Ncb) != ‎0)return false;cha‎r acMAC[32];sprintf‎(acMAC, "%02X-%02X-%‎02X-%02X-%02X-%02X",‎int (adapter.adapt.‎a dapter_address[0]),‎int (adapter.adapt.‎a dapter_address[1]),‎int (adapter.adapt.‎a dapter_address[2]),‎int (adapter.adapt.‎a dapter_address[3]),‎int (adapter.adapt.‎a dapter_address[4]),‎int (adapter.adapt.‎a dapter_address[5]))‎;macOUT = acMAC;re‎t urn true;}}bool‎GetMacByNetBIOS(std‎::string& macOUT){‎// 取得网卡列表LANA_ENUM ‎a dapterList;NCB Ncb‎;memset(&Ncb, 0, si‎z eof(NCB));Ncb.ncb_‎c ommand = NCBENUM;N‎c b.ncb_buffer = (uns‎i gned char *)&adapte‎r List;Ncb.ncb_lengt‎h = sizeof(adapterLi‎s t);Netbios(&Ncb);‎// 取得MACfor (int i‎= 0; i < adapterLis‎t.length; ++i){if ‎(GetAdapterInfo(adap‎t na[i], mac‎O UT))return true;}‎return false;}参‎考:取得系统中网卡MAC地址的三种方法‎方法二:通过对控制台ipconf‎i g /all命令重定向#includ‎e <Windows.h>#inclu‎d e <boost\regex.hpp>‎namespace{#if 0‎/// @brief 采用字符串查找来提‎取MAC地址/// @remark 该‎方法有很大局限性,并不是所有OS返回的M‎A C地址前导字符串都是/// ‎"Physical Address. .‎. . . . . . . : "b‎o ol ParseMac(const s‎t d::string& str, std‎::string& macOUT){‎s tatic const std::st‎r ing beginMarkOfMAC(‎"Physical Address. .‎. . . . . . . : ");‎static const std::s‎t ring endMarkOfMAC("‎\r\n");size_t begin‎= str.find(beginMar‎k OfMAC);if(begin !=‎std::string::npos)‎{begin += beginMark‎O fMAC.size();size_t‎end = str.find(endM‎a rkOfMAC, begin);if‎(end != std::string:‎:npos){macOUT = st‎r.substr(begin, end ‎- begin - 1);return‎true;}}return fa‎l se;}#else/// @br‎i ef 采用boost::regex来提‎取MACbool ParseMac(c‎o nst std::string& st‎r, std::string& macO‎U T){const static b‎o ost::regex expressi‎o n("([0-9a-fA-F]{2}‎)-([0-9a-fA-F]{2})-(‎[0-9a-fA-F]{2})-([0-‎9a-fA-F]{2})-([0-9a-‎f A-F]{2})-([0-9a-f A-‎F]{2})",boost::reg‎e x::perl | boost::re‎g ex::icase);boost::‎c match what;if(boo‎s t::regex_search(str‎.c_str(), what, expr‎e ssion)){macOUT =‎what[1] + "-" + wha‎t[2] + "-" + what[3]‎+ "-" + what[4] + "‎-" + what[5] + "-" +‎what[6];return tru‎e;}return false;}‎#endif}bool GetM‎a cByCmd(std::string&‎macOUT){bool ret ‎= false;//初始化返回MAC‎地址缓冲区SECURITY_ATTRI‎B UTES sa;sa.nLengt‎h = sizeof(SECURITY_‎A TTRIBUTES);sa.lpS‎e curityDescriptor = ‎N ULL;sa.bInheritHa‎n dle = TRUE;//创建管道‎HANDLE hReadPipe,hW‎r itePipe;if(CreateP‎i pe(&hReadPipe, &hWr‎i tePipe, &sa, 0) == ‎T RUE){//控制命令行窗口信息‎S TARTUPINFO si;//返‎回进程信息PROCESS_INFORM‎A TION pi;si.cb = si‎z eof(STARTUPINFO);‎G etStartupInfo(&si);‎si.hStdError = hWr‎i tePipe;si.hStdOut‎p ut = hWritePipe;s‎i.wShowWindow = SW_H‎I DE; //隐藏命令行窗口si.dw‎F lags = STARTF_USESH‎O WWINDOW | STARTF_US‎E STDHANDLES;//创建获取‎命令行进程if (CreateProc‎e ss(NULL, "ipconfig ‎/all", NULL, NULL, T‎R UE, 0, NULL, NULL, ‎&si, &pi) == TRUE)‎{WaitForSingleObje‎c t(pi.hProcess, 3000‎); // 设置超时时间,防止Vista‎、Win7等操作系统卡死unsigne‎d long count;CloseH‎a ndle(hWritePipe);s‎t d::string strBuffer‎(1024 * 10, '\0'); /‎/准备足够大的缓冲区if(ReadF‎i le(hReadPipe, const‎_cast<char*>(strBuff‎e r.data()), strBuffe‎r.size() - 1, &count‎, 0) == TRUE){strB‎u ffer.resize(strBuff‎e r.find_first_of('\0‎')); // 截掉缓冲区后面多余的'\‎0'ret = ParseMac(st‎r Buffer, macOUT);//提‎取MAC地址串}CloseHandl‎e(pi.hThread);Clos‎e Handle(pi.hProcess)‎;}CloseHandle(hWr‎i tePipe); // VS2010下‎调试,此处会有“An invalid h‎a ndle was specified”‎的中断,直接运行正常,原因未知。

查询mac地址的方法

查询mac地址的方法

查询mac地址的方法查询MAC地址的方法有多种,包括通过操作系统界面、命令行工具、软件应用和硬件设备等途径。

下面将详细介绍几种常用的方法。

方法一:使用操作系统界面1. 在Windows操作系统中,点击“开始”菜单,选择“设置”。

2.在“设置”窗口中,点击“网络和互联网”。

3.在“网络和互联网”窗口下方,点击“状态”。

4.在“状态”窗口中,点击“查看你的网络属性”。

5.在“网络”窗口中,滚动到底部,找到“物理地址”或“代理服务器”。

6.物理地址就是对应的MAC地址。

在MacOS操作系统中,可以通过以下步骤查询MAC地址:1.点击左上角的苹果图标,在弹出的下拉菜单中选择“系统偏好设置”。

2.在“系统偏好设置”窗口中,找到并点击“网络”。

3.在“网络”窗口中,选择当前正在使用的网络连接(如Wi-Fi、以太网等)。

4.点击右下角的“高级”按钮。

6.硬件地址就是对应的MAC地址。

方法二:使用命令行工具1. 打开命令提示符窗口(在Windows中,可以在开始菜单中“命令提示符”并打开;在MacOS中,可以打开“启动台”,“终端”并打开)。

2. 在命令提示符窗口中输入“ipconfig /all”(Windows)或“ifconfig”(MacOS),然后按下回车键。

3.在输出结果中找到对应的网络适配器,其中包含了MAC地址信息。

方法三:使用第三方软件应用1. 在Windows操作系统中,可以使用一些第三方软件应用来查询MAC地址,如Wireless Network Watcher、Angry IP Scanner等。

2. 在MacOS操作系统中,可以使用一些MAC地址扫描工具,如LanScan、Angry IP Scanner等。

方法四:查看硬件设备注意事项:1.MAC地址是一个由12个字符组成的唯一标识符,通常表示为6个十六进制数。

2.在查询MAC地址时,需要确定要查询的是哪个网络适配器的MAC地址(如Wi-Fi、有线网卡等)。

如何用VC读取网卡MAC地址

如何用VC读取网卡MAC地址

如何用VC++开发读取网卡MAC地址的程序---- 在实际的应用系统中,我们往往会需要在程序运行时获取当前机器的网卡的MAC地址,以便作为某种标识之用,如控制程序的合法性等。

下文就如何用Microsoft Visual C++ 6.0开发这样的程序演示如何实现其要点。

---- 这里采用的方法是通过Windows 9x/NT/Win2000中内置的NetApi32.DLL的功能来实现的,首先通过发送NCBENUM命令获取网卡的数目和每个网卡的内部编号,然后对每个网卡标号发送NCBASTAT命令获取其MAC地址。

注意:这里的网卡是指捆绑了NetBeui协议的通信协议栈,可以在网卡的属性处查看到。

---- 请运行VC++,打开一个新的工程,选择创建一个Win32 Console程序,然后按下文输入代码,并请参见其中的注释:#include "stdafx.h"#include < windows.h >#include < wincon.h >#include < stdlib.h >#include < stdio.h >#include < time.h >---- // 因为是通过NetAPI来获取网卡信息,所以需要包含其题头文件nb30.h #include < nb30.h >typedef struct _ASTAT_{ADAPTER_STA TUS adapt;NAME_BUFFER NameBuff [30];}ASTA T, * PASTAT;ASTAT Adapter;---- // 定义一个存放返回网卡信息的变量---- // 输入参数:lana_num为网卡编号,一般地,从0开始,但在Windows 2000中并不一定是连续分配的void getmac_one (int lana_num){NCB ncb;UCHAR uRetCode;memset( &ncb, 0, sizeof(ncb) );ncb.ncb_command = NCBRESET;ncb.ncb_lana_num = lana_num;// 指定网卡号---- // 首先对选定的网卡发送一个NCBRESET命令,以便进行初始化uRetCode = Netbios( &ncb );printf( "The NCBRESET return code is:0x%x \n", uRetCode );memset( &ncb, 0, sizeof(ncb) );ncb.ncb_command = NCBASTAT;ncb.ncb_lana_num = lana_num; // 指定网卡号strcpy( (char *)ncb.ncb_callname,"* " );ncb.ncb_buffer = (unsigned char *) &Adapter;---- // 指定返回的信息存放的变量ncb.ncb_length = sizeof(Adapter);---- // 接着,可以发送NCBASTAT命令以获取网卡的信息uRetCode = Netbios( &ncb );printf( "The NCBASTA Treturn code is: 0x%x \n", uRetCode );if ( uRetCode == 0 ){---- // 把网卡MAC地址格式化成常用的16进制形式,如0010-A4E4-5802printf( "The Ethernet Number[%d]is: %02X%02X-%02X%02X-%02X%02X\n",lana_num,Adapter.adapt.adapter_address[0],Adapter.adapt.adapter_address[1],Adapter.adapt.adapter_address[2],Adapter.adapt.adapter_address[3],Adapter.adapt.adapter_address[4],Adapter.adapt.adapter_address[5] );}}int main(int argc, char* argv[]){NCB ncb;UCHAR uRetCode;LANA_ENUM lana_enum;memset( &ncb, 0, sizeof(ncb) );ncb.ncb_command = NCBENUM;ncb.ncb_buffer = (unsigned char *) &lana_enum;ncb.ncb_length = sizeof(lana_enum);---- // 向网卡发送NCBENUM命令,以获取当前机器的网卡信息,如有多少个网卡、每张网卡的编号等uRetCode = Netbios( &ncb );printf( "The NCBENUM returncode is:0x%x \n", uRetCode );if ( uRetCode == 0 ){printf( "Ethernet Count is : %d\n\n", lana_enum.length);---- // 对每一张网卡,以其网卡编号为输入编号,获取其MAC地址for ( int i=0; i< lana_enum.length; ++i)getmac_one( lana_na[i]);}return 0;}---- 此时,按F7编译、直至通过,按F5运行即可。

vbs脚本自动获取本个活动网卡mac地址

vbs脚本自动获取本个活动网卡mac地址

vbs脚本自动获取本个活动网卡mac地址Set ws = CreateObject("WScript.Shell")ws.Run "cmd /k ipconfig /all >d:\\ip.txt",0name=1call inputnameif abc (name)>0 thenmsgbox "姓名中有英文或数字,请重新打开程序输入中文姓名,谢谢"Wscript.Quitend iffunction ABC(byval a)for i = 1 to len(a)if (mid(a,i,1)>="a" and mid(a,i,1)<="z") or (mid(a,i,1)>="A" and mid(a,i,1)<="Z") thenn=n+1exit forelsen=0end ifnextabc=nend functionfunction inputnamename = InputBox("请输入姓名")If IsEmpty(name) ThenMsgBox "是不是没写姓名,请重新打吧"call inputnameElsemsgBox "你输入的名字是:"+(name)End Ifend functionif IsNumeric (name)=true thenmsgbox "姓名中有数字,请重新打开程序输入中文姓名,谢谢"Wscript.Quitend ifDim mc,moSetmc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAda pterConfiguration")For Each mo In mcIf mo.IPEnabled=True Thenmac=mo.MacAddressExit ForEnd IfNextmac=cstr(mac)mac=replace(mac,":","")Dim objFSODim strFileNewstrFile = "d:\\ip.txt"strFileNew = "\\\\192.168.0.220\\公共区域\\临时空间(15天自动清空)\\" & (name)&(mac)&".txt"Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")objFSO.CopyFile (strFile),(strFileNew)。

vb读取MAC地址报告

vb读取MAC地址报告

实习报告指导老师:***题目编号:13系部:通信工程系专业方向:网络班级:0431学号:******学生:张豫江一.选题任务1.题目(13).读取本地和远程机器网卡的MAC地址。

2。

分析说明网卡的MAC地址就是网卡物理地址,网卡的MAC地址是厂商生产的网卡的地址,每个网卡的地址是唯一的,MAC地址的作用是用来找到用来通信的计算机,所以获取网卡的物理地址是十分重要。

运行程序,单击“获取”按钮,即可获取网卡的物理地址,单击“退出”按钮,即可退出程序。

如下图所示。

这是初步列出测试数据以及测试目的。

二.实现过程1.编程思路使用NetBIOS网络程序接口来获取网卡物理地址。

只用一个函数Netbios,下面是这个函数在网络接口的使用:Netbios是网络基本输入/输出系统的缩写。

该函数是与协议无关的网络程序接口。

2.函数声明:Private Declare Function Netbios Lib "netapi32.dll" (pncb As NET_CONTROL_BLOCK) As Byte3.参数:Pncb参数,指向某个网络控制块。

4.返回值:若返回值为NRC-BADNCB,则网络控制块调用失败。

否则,返回网络控制块卡的接口地址。

5.具体实现步骤如下:1)。

新建一个标准工程,创建一个新窗体。

首先打开“Microsoft Visual Basic 6.0中文版”,见到图8-1:图 8-1 VB “新建工程”对话框选择“标准EXE ”,再单击“打开”按钮,出现如下VB 工作界面:图 8-2 VB 工作界面如果在图8-1中单击了“取消”按钮,那么图8-2中除主菜单以外,一片空白。

此时需要单击“文件” “新建工程”,打开“新建工程”对话框,选择“标准EXE ”,单击“打开”,才可见到图8-2。

图8-2是Windows 中应用软件常见的工作窗口,只是它有许多特有的组成部件,如图8-2中标识所示。

用vbs实现获取电脑硬件信息的脚本_最新版

用vbs实现获取电脑硬件信息的脚本_最新版

⽤vbs实现获取电脑硬件信息的脚本_最新版代码⼀:'*******************************************************************************************'Version:3.1' 调整错误处理⽅法,错误信息输出到LogFile⽂件,可以查看扫描失败原因' 如果出现“RPC 服务器不可⽤”错误,是因为远程主机没开机' 如果出现“RPC 服务器不可⽤”之外的错误,可能是由于正在运⾏的程序造成,请你把此信息告诉我' 重启后再次扫描就可以排除⾮“RPC 服务器不可⽤。

”的错误' 如果扫描到的硬件信息为空,应该是驱动问题(或BIOS不完善),请⾃⾏解决'Version:3.0' 增加输出BIOS的发⾏⽇期,和主板信息放在⼀起'Version:2.9' 修正所有GetInfo过程遇错的处理⽅法,避免返回的数组上限不符合输出要求导致脚本报错。

' 之所以为出现这种情况,是因为Win32类检索不到硬件或连接到Win32类失败;' 原来判断是否出现Err,忽略了检索不到硬件的情况(连接成功⽆Err,Count为0)' 检索不到硬件多数是因为驱动没装好'Version:2.8' 增加GetIDEProtocol过程,获取IDE控制器使⽤的协议,只是增加了代码,没有调⽤' 计划增加检索其它存储器控制器的过程'Version:2.7' 检索硬盘/显卡/⽹卡/声卡的过程增加 DeviceID 属性(设备标识符)' 此属性不被输出,⽤于脚本内部判断'Version:2.6' 原来输出搜索到的第⼀个硬盘' 改为输出搜索到的第⼀个InterfaceType属性为IDE的硬盘的信息'Version:2.5' 增加Sort过程,排序硬件信息'Version:2.4' 调整输出信息的分类,同类信息尽可能的只使⽤⼀个逗号分隔,以便导⼊xls后在同⼀列' 查询到的硬件信息如果是空或0,有可能是相关驱动不完善或未定义此信息,也可能是未安装驱动' 因为WMI查询就代表了系统知道这些硬件的详细信息,查不到信息就是系统不知道' 系统不知道硬件的详细信息,代表着性能可能有所缺失,建议找个好驱动安装' 值得注意的是主板驱动' (为了更容易理解,此版本的升级信息被编辑过)'Version:2.3' 取消2.2版增加输出的硬盘接⼝类型' 由于STAT也归于IDE接⼝,这会导致误解' PS:脚本只输出搜索到的第⼀个硬盘'Version:2.2' GetMemoryInfo过程增加MemoryType、FormFactor、TypeDetail三个属性' 输出增加内存类型、封装类型' 输出增加硬盘容量、接⼝类型'Version:2.1' GetOSInfo过程增加去掉Caption属性中带有的逗号“,”的代码' 原因:在检测2003系统时,读取到的Caption属性,带有逗号“,”' 这会影响输出,因为输出是以逗号“,”为分隔符的'Version:2.0 B5发布版' GetNetworkInfo过程改为使⽤MACAddress属性⾮空、' Manufacturer属性⾮"Microsoft"判断⽹卡'Version:2.0 Beta4' GetNetworkInfo过程使⽤NetConnectionStatus属性判断⽹络适配器' NetConnectionStatus属性表明连接状态(2000系统不⽀持此属性)' 物理⽹络适配器才具有此状态(包括停⽤状态在内)'Version:2.0 Beta3' GetNetworkInfo过程增加⼀个判断' 忽略读取IPAddress(0)时会产⽣Err类型数据的适配器(对战平台)'Version:2.0 Beta2' GetOSInfo过程原来使⽤的Name、ServicePackMajorVersion属性' 改为使⽤Caption、CSDVersion属性' 所有GetInfo过程增加错误处理代码,避免正在扫描的时候' 脚本遇到运⾏时错误导致脚本退出'Version:2.0 Beta1' 增加扫描失败记录,再次运⾏脚本只读取失败记录,忽略配置信息'Version:1.1' GetNetworkInfo过程增加⼀个判断' 忽略NetConnectionID属性(接⼝名称)为空的适配器'Version:1.0' 初始版本''E-Mail:lzmyst@'你可以任意编辑、引⽤脚本的全部或部分代码'转贴、引⽤脚本的全部或部分代码请保留版权'**************************************'********************************说明开始*************************************'Input格式:起始IP-数量=⽤户名=密码;起始计算机名-数量=⽤户名=密码' 多个配置项⽤“;”隔开'例:192.168.0.1-10指明IP范围为192.168.0.1~192.168.0.10,⽀持跨⽹段'例:PC001-10指明范围为PC001~PC010(计算机名可以包含-号)'与指定格式不相同的,默认为单IP[计算机名],也可以在"未扫描的计算机.txt"⾥配置'"硬件信息.txt"是以逗号分隔各项硬件信息,你需要⾃⼰导⼊XLS整理、精简'未扫描到的计算机,会把机号、⽤户名、密码保存到"未扫描的计算机.txt"'再次运⾏脚本将只读取"未扫描的计算机.txt"⾥的信息(如果存在并且⼤⼩不为0)'********************************说明结束*************************************Dim Input, InfoOutFile, LogFile '请按格式给Input赋值'Input = "pc021=administrator=cylslynetbar"Input = "PC001-109=administrator=cylslynetbar;pc110-85=administrator=LYjfnetbaradmin"InfoOutFile = "硬件信息.txt"LogFile = "未扫描的计算机.txt"Redim arrConfig(0)Dim WshShell, FSO, intCount1, intCount2intCount1 = 0intCount2 = 0Set WshShell = WScript.CreateObject("WScript.Shell")Set FSO = WScript.Createobject("Scripting.Filesystemobject")ReadConfigWshShell.Popup "扫描过程会很慢,请耐⼼等待,完成后会给出提⽰",,"扫描开始"LinkRemoteServer arrConfigDim LenNum1, LenNum2If intCount1 > intCount2 ThenLenNum1 = 0LenNum2 = Len(intCount1) - Len(intCount2)ElseLenNum1 = Len(intCount2) - Len(intCount1)LenNum2 = 0End IfSort InfoOutFileWshShell.Popup "扫描结果:" & _vbCrLf & vbTab & "扫描成功:" & Space(LenNum1) & intCount1 & " 台" & _vbCrLf & vbTab & "扫描失败:" & Space(LenNum2) & intCount2 & " 台" & _vbCrLf & "扫描失败的电脑已做记录,再次运⾏脚本只扫描记录⾥的电脑",,"扫描完成" Function ReadConfigDim objMatches, objMatche,objLogFile, arrLog, intUBarrConfigIf FSO.FileExists(LogFile) ThenIf FSO.GetFile(LogFile).Size = 0 ThenSet objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)For Each objMatche In objMatchesGetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2) NextIf objMatches.Count = 0 ThenMsgbox "配置信息格式不正确,请修改"WScript.QuitEnd IfElseSet objLogFile = FSO.OpenTextFile(LogFile)Do Until objLogFile.AtEndOfStreamarrLog = Split(objLogFile.ReadLine,"=")intUBarrConfig = ((Ubound(arrConfig)+1)\3+1)*3-1Redim Preserve arrConfig(intUBarrConfig)arrConfig(intUBarrConfig-2) = arrLog(0)arrConfig(intUBarrConfig-1) = arrLog(1)arrConfig(intUBarrConfig-0) = arrLog(2)LoopEnd IfElseSet objMatches = GetMatche("([^;=]+)=([^;=]+)=([^;=]+)", Input)For Each objMatche In objMatchesGetConfig objMatche.SubMatches(0), objMatche.SubMatches(1), objMatche.SubMatches(2)WScript.QuitEnd IfEnd IfEnd Function'*********************************************************************************'⽬的:连接到远程主机的WMI命名空间'输⼊:arrArray数组,包含有计算机名[IP]、⽤户名、密码'调⽤:LinkServer过程' 如果返回SWbemLocator对象ConnectServer⽅法的实例,调⽤OutInfo过程' 如果返回Err信息(字符串类型),输出计算机名[IP]、⽤户名、密码及错误信息到LogFile⽂件' OutInfo过程' 如果返回Err信息(字符串类型)输出计算机名[IP]、⽤户名、密码及错误信息到LogFile⽂件'传递:SWbemLocator对象ConnectServer⽅法的实例传递给OutInfo过程' 计算机名[IP]、命名空间、⽤户名、密码传递给LinkServer过程'*********************************************************************************Function LinkRemoteServer(arrArray)Dim objErrLog, E, objLinkServer, objConnection, objWbemLocator, objErrSet objWbemLocator = CreateObject("WbemScripting.SWbemLocator")Set objErrLog = FSO.CreateTextFile(LogFile,True)For E = 0 To Ubound(arrArray) Step 3Set objLinkServer = LinkServer(arrConfig(E),"root\cimv2",arrConfig(E+1),arrConfig(E+2))If Err ThenobjErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & _"错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By LinkServer Function"intCount2 = intCount2 + 1Err.ClearElseobjErr = OutInfo(objLinkServer)If Vartype(objErr) = 8 ThenobjErrLog.Writeline arrArray(E) & "=" & arrArray(E+1) & "=" & arrArray(E+2) & "=" & objErrintCount2 = intCount2 + 1End IfEnd IfNextEnd Function'******************************************************'⽬的:输出硬件信息'输⼊:SWbemLocator对象ConnectServer⽅法的实例'调⽤:获取硬件信息的GetXXXInfo过程'传递:SWbemLocator对象ConnectServer⽅法的实例'返回:所有调⽤的GetInfo过程都未返回Err对象,则返回True' 某个GetInfo过程返回Err对象,则返回False'******************************************************Function OutInfo(objRemote)Dim OutFile, arrInfo, strOutInfo, Tmp, AIf FSO.FileExists(InfoOutFile) ThenSet OutFile = FSO.OpenTextFile(InfoOutFile,8)ElseSet OutFile = FSO.CreateTextFile(InfoOutFile)OutFile.Writeline "计算机名,系统(初装⽇期),主板型号(⼚商)(发⾏⽇期),CPU型号(接⼝类型),外频,L2容量(速度)," & _ "内存总量,内存速度(位置),内存类型(封装类型),硬盘型号(容量),显卡型号(显存),⽹卡,IP/MAC"End If'系统arrInfo = GetOSInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = arrInfo(0) & "," & arrInfo(1) & "(" & arrInfo(2) & "),"'主板arrInfo = GetBoardInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & ")"'BIOSarrInfo = GetBIOSInfo(objRemote)End IfstrOutInfo = strOutInfo & "(" & arrInfo(2) & "),"'CPUarrInfo = GetCPUInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(1) & "(" & arrInfo(8) & ")," & arrInfo(4) & "," & _arrInfo(6) & "(" & arrInfo(7) & "),"'内存arrInfo = GetMemoryInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfTmp = 0For A = 1 To Ubound(arrInfo) Step 6Tmp = Tmp + Cint(arrInfo(A))NextstrOutInfo = strOutInfo & arrInfo(0) & "条,共" & Tmp & "M,"Tmp = ""For A = 2 To Ubound(arrInfo) Step 6If A = Ubound(arrInfo) - 4 ThenTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"ElseTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "End IfNextstrOutInfo = strOutInfo & TmpTmp = ""For A = 4 To Ubound(arrInfo) Step 6If A = Ubound(arrInfo) - 2 ThenTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & "),"ElseTmp = Tmp & arrInfo(A) & "(" & arrInfo(A+1) & ") "End IfNextstrOutInfo = strOutInfo & Tmp'硬盘Tmp = ""arrInfo = GetDiskInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfFor A = 1 To Ubound(arrInfo) Step 5If arrInfo(A+1) = "IDE" ThenTmp = arrInfo(A) & "(" & arrInfo(A+2) & "G),"Exit ForEnd IfNextIf Tmp = "" ThenstrOutInfo = strOutInfo & "硬盘型号未检索到,"ElsestrOutInfo = strOutInfo & TmpEnd If'显卡arrInfo = GetVideoInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(0) & "(" & arrInfo(1) & "M),"'⽹卡arrInfo = GetNetworkInfo(objRemote)If Vartype(arrInfo) = 8 ThenOutInfo = arrInfoExit FunctionEnd IfstrOutInfo = strOutInfo & arrInfo(1) & "," & arrInfo(2) & Space(17-Len(arrInfo(2))) & arrInfo(3) '输出OutFile.Writeline strOutInfo'*********************************************************'⽬的:连接到远程主机的WMI命名空间'输⼊:strComputer:远程主机的计算机名或IP' strNamespace:命令空间' strUserName:⽤户名' strPassword:密码'返回:连接成功,返回SWbemLocator类连接远程主机后的对象的实例' 连接失败,返回错误对象'*********************************************************Function LinkServer(strComputer,strNamespace,strUserName,strPassword) Dim objWbemLocatorSet objWbemLocator = CreateObject("WbemScripting.SWbemLocator")Dim objConnectionOn Error Resume NextSet objConnection = objwbemLocator.ConnectServer _(strComputer, strNamespace, strUserName, strPassword)If Err ThenSet LinkServer = ErrExit FunctionEnd IfOn Error Goto 0objConnection.Security_.ImpersonationLevel = 3Set LinkServer = objConnectionEnd Function'******************************************'⽬的:正则表达式'输⼊:strPatrn:正则表达式模式' strString:要执⾏正则表达式的字符串'返回:Match对象'******************************************Function GetMatche(strPatrn, strString)Dim RegExSet RegEx = New RegexpRegEx.Global = TrueRegEx.IgnoreCase =TrueRegEx.Pattern = strPatrnSet GetMatche = RegEx.Execute(strString)End Function'***************************************'⽬的:2、8、16进制转10进制'输⼊:strString:2、8、16进制数' intNum:进制(2|8|16)'返回:10进制数'***************************************Function ChangeToDecimal(strString, intNum)ChangeToDecimal = 0If Isnull(strString) Then ChangeToDecimal = 0 : Exit FunctionDim A, MFor A = 1 To Len(strString)M = LCase(Mid(strString, A, 1))Select Case MCase "a" :M = 10Case "b" :M = 11Case "c" :M = 12Case "d" :M = 13Case "e" :M = 14Case "f" :M = 15End SelectChangeToDecimal = ChangeToDecimal + M * intNum^(Len(strString)-A) NextEnd Function'*******************************************************'⽬的:分析配置信息'输⼊:strIP, strUser, strPW:IP[计算机名]、账户、密码'返回:⽆,直接把分析结果保存在数组'*******************************************************Function GetConfig(strIP, strUser, strPW)Dim Matches, SubMatcheDim IP_1, IP_2, IP_3, IP_4, intStar, intEnd, A, intConfigNumIf Matches.Count = 1 ThenSet SubMatche = Matches(0)intStar = Cint(SubMatche.SubMatches(3))intEnd = intStar + Cint(SubMatche.SubMatches(4)) - 1For A = intStar To intEndIP_4 = A Mod 256IP_3 = (Cint(SubMatche.SubMatches(2))+ A\256) Mod 256IP_2 = (Cint(SubMatche.SubMatches(1)) + (Cint(SubMatche.SubMatches(2))+ A\256)\256) Mod 256 IP_1 = Cint(SubMatche.SubMatches(0)) + (Cint(SubMatche.SubMatches(1)) + _(Cint(SubMatche.SubMatches(2))+ A\256)\256)\256If IP_1 > 223 Or IP_1 = 127 Or IP_1 < 1 ThenMsgbox strIP & "包含的" & IP_1 & "." & IP_2 & "." & IP_3 & "." & IP_4 & _"不是有效IP,此IP及之后的IP已被丢弃"Exit FunctionEnd IfintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)arrConfig(intConfigNum*3-3) = IP_1 & "." & IP_2 & "." & IP_3 & "." & IP_4arrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWNextExit FunctionEnd IfDim ComputerName_Patrn, Prefix, intLenComputerName_Patrn = "([\S]+[^0-9]{1})([0]*[\d]+)-([\d]+)"Set Matches = GetMatche(ComputerName_Patrn, strIP)If Matches.Count = 1 ThenSet SubMatche = Matches(0)Prefix = SubMatche.SubMatches(0)intLen = Len(SubMatche.SubMatches(1))intStar = Cint(SubMatche.SubMatches(1))intEnd = intStar + Cint(SubMatche.SubMatches(2)) - 1For A = intStar To intEndintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)If Len(A) < intLen ThenarrConfig(intConfigNum*3-3) = Prefix & String(intLen-Len(A),"0") & AElsearrConfig(intConfigNum*3-3) = Prefix & AEnd IfarrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWNextExit FunctionEnd IfintConfigNum = (Ubound(arrConfig)+1)\3 + 1Redim Preserve arrConfig(intConfigNum*3-1)arrConfig(intConfigNum*3-3) = strIParrConfig(intConfigNum*3-2) = strUserarrConfig(intConfigNum*3-1) = strPWEnd Function'***********************************************************'⽬的:获取操作系统信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取操作系统的3种属性:' 0 1 2' CSName Caption&CSDVersion InstallDate' 计算机名系统名&SP版本初装⽇期'LastBootUpTime属性表⽰系统最近⼀次的启动时间'***********************************************************Function GetOSInfo(objConnection)Dim arrOSInfoDim objSystemInfos, objSystemInfo, arrOS(2)Dim TmpOn Error Resume NextSet objSystemInfos = objConnection.InstancesOf("win32_operatingsystem")If Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearTmp = objSystemInfos.CountIf Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor Each objSystemInfo In objSystemInfosarrOS(0) = objSystemInfo.CSNamearrOS(1) = Replace(objSystemInfo.Caption,",","") & " " & objSystemInfo.CSDVersion arrOS(2) = Mid(CStr(objSystemInfo.InstallDate),1,4) & "-" & _Mid(CStr(objSystemInfo.InstallDate),5,2) & "-" & _Mid(CStr(objSystemInfo.InstallDate),7,2) '& ", " & _'Mid(CStr(objSystemInfo.InstallDate),9,2) & ":" & _'Mid(CStr(objSystemInfo.InstallDate),11,2) & ":" & _'Mid(CStr(objSystemInfo.InstallDate),13,2)NextIf Err ThenGetOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetOSInfo = arrOSOn Error Goto 0End Function'***********************************************************'⽬的:获取主板信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取主板的3种属性:' 0 1 2' Product Manufacturer Version' 型号⼚商版本'***********************************************************Function GetBoardInfo(objConnection)Dim objboards, objboard, arrBoard(2)Dim TmpOn Error Resume NextSet objboards = objConnection.InstancesOf("Win32_BaseBoard")If Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfTmp = objboards.CountIf Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objboard In objboardsarrBoard(0) = Replace(Trim(objboard.Product),",","") '型号arrBoard(1) = Replace(Trim(objboard.Manufacturer),",","") '⼚商arrBoard(2) = Replace(Trim(objboard.Version),",","") '版本NextIf Err ThenGetBoardInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBoardInfo Function"Err.ClearOn Error Goto 0On Error Goto 0End Function'***********************************************************'⽬的:获取BIOS信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为2' 取BIOS的2种属性:' 0 1 2' Manufacturer SMBIOSBIOSVersion ReleaseDate' ⼚商版本发⾏⽇期'***********************************************************Function GetBIOSInfo(objConnection)Dim objBIOSs, objBIOS, arrBIOS(2)Dim TmpOn Error Resume NextSet objBIOSs = objConnection.InstancesOf("Win32_BIOS")If Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfTmp = objBIOSs.CountIf Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objBIOS In objBIOSsIf Isnull(objBIOS.Manufacturer) ThenarrBIOS(0) = "BIOS⼚商不存在" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOSElsearrBIOS(0) = Replace(Trim(objBIOS.Manufacturer),",","")End IfIf Isnull(objBIOS.SMBIOSBIOSVersion) ThenarrBIOS(1) = "由SMBIOS汇报的BIOS版本不存在" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOS ElsearrBIOS(1) = Replace(Trim(objBIOS.SMBIOSBIOSVersion),",","")End IfIf Isnull(objBIOS.ReleaseDate) ThenarrBIOS(2) = "BIOS发⾏⽇期未知" '请检查主板驱动是否完善或未安装,或BIOS不完善需要刷BIOSElsearrBIOS(2) = Left(Cstr(objBIOS.ReleaseDate),8)End IfNextIf Err ThenGetBIOSInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetBIOSInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetBIOSInfo = arrBIOSOn Error Goto 0End Function'************************************************************'⽬的:获取CPU信息'输⼊:SWbemLocator对象ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为8' 取CPU的9种属性:' 0 1 2 3 4' Name MaxClockSpeed CurrentVoltage ExtClock' 核⼼数量型号主频电压外频' 5 6 7 8' AddressWidth L2CacheSize L2CacheSpeed SocketDesignationDim objCPU, objCPUs, arrCPU(8)On Error Resume NextSet objCPUs = objConnection.InstancesOf("win32_processor")If Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfarrCPU(0) = objCPUs.Count '每个CPU核⼼都返回⼀个实例,实例数量即为CPU核⼼数量 If Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfFor each objCPU In objCPUsarrCPU(1) = Replace(Trim(),",","") '型号arrCPU(2) = objCPU.MaxClockSpeed '主频arrCPU(3) = ChangeToDecimal(objCPU.CurrentVoltage, 16)/10 '电压arrCPU(4) = objCPU.ExtClock '外频arrCPU(5) = objCPU.AddressWidth '位宽arrCPU(6) = objCPU.L2CacheSize 'L2容量arrCPU(7) = objCPU.L2CacheSpeed 'L2频率arrCPU(8) = objCPU.SocketDesignation '插槽类型NextIf Err ThenGetCPUInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetCPUInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfGetCPUInfo = arrCPUOn Error Goto 0End Function'********************************************************************************************'⽬的:获取内存信息'输⼊:SWbemLocator对象的ConnectServer⽅法连接到远程主机的实例'返回:数组,上限为(内存条的数量*6),0=内存条的数量' 取内存的6种属性:' 1 2 3 4 5 6' capacity Speed DeviceLocator MemoryType FormFactor TypeDetail' 容量速度插槽位置内存类型封装(接⼝)类型详细类型-系统应⽤类型'DeviceLocator属性表⽰这个内存所在的插槽' ⼀般是字符加数字,数字相当于主板上内存插槽的物理位置'******************************************************************************************** Function GetMemoryInfo(objConnection)Dim objMemorys, objMemory, NumRedim arrMemory(0)On Error Resume NextSet objMemorys = objConnection.InstancesOf("Win32_PhysicalMemory")If Err ThenGetMemoryInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetMemoryInfo Function"Err.ClearOn Error Goto 0Exit FunctionEnd IfarrMemory(0) = objMemorys.Count '每条内存都返回⼀个实例,实例项数即内存条数量 If Err ThenGetMemoryInfo = "错误编号:" & CStr(Err.Number) & _",错误原因:" & CStr(Err.Description) & _",错误来源:" & CStr(Err.Source) & " By GetMemoryInfo Function"Err.ClearOn Error Goto 0For Each objMemory In objMemorysNum = Num + 1Redim Preserve arrMemory(Num*6)arrMemory(Num*6-5) = objMemory.capacity/1048576 '容量(M)arrMemory(Num*6-4) = objMemory.Speed '速度(MHz)arrMemory(Num*6-3) = objMemory.DeviceLocator '插槽位置Select Case objMemory.MemoryType '内存类型,Case 0 :arrMemory(Num*6-2) = "Unknown" '未知Case 1 :arrMemory(Num*6-2) = "Other" '其它Case 2 :arrMemory(Num*6-2) = "DRAM" '动态随机存储器Case 3 :arrMemory(Num*6-2) = "Synchronous DRAM" '同步动态随机存储器Case 4 :arrMemory(Num*6-2) = "Cache DRAM" '同步缓存动态随机存储器,三菱专利技术,插⼊⼀个SRAM作为⼆级CACHE使⽤ Case 5 :arrMemory(Num*6-2) = "EDO" '外扩充数据模式存储器(Extended Date Out)Case 6 :arrMemory(Num*6-2) = "EDRAM" '增强型动态随机存储器,在DRAM中包括了⼀⼩部分的SRAM(Enhanced DRAM) Case 7 :arrMemory(Num*6-2) = "VRAM" '视频存储器,专门为图形应⽤优化的存储器(Video DRAM)Case 8 :arrMemory(Num*6-2) = "SRAM" '静态随机存储器Case 9 :arrMemory(Num*6-2) = "RAM" '随机存储器Case 10 :arrMemory(Num*6-2) = "ROM" '只读存储器Case 11 :arrMemory(Num*6-2) = "Flash" '闪速存储器,简称闪存(Flash Memory),属于EEPROM(电擦除可编程只读存储器)类型 Case 12 :arrMemory(Num*6-2) = "EEPROM" '电可擦写可编程只读存储器Case 13 :arrMemory(Num*6-2) = "FEPROM" 'F什么可擦写可编程只读存储器Case 14 :arrMemory(Num*6-2) = "EPROM" '可擦写可编程只读存储器(Erasable Programmable ROM)Case 15 :arrMemory(Num*6-2) = "CDRAM" '同步缓存动态随机存储器,即Cache DRAMCase 16 :arrMemory(Num*6-2) = "3DRAM" '3维视频处理器专⽤存储器(3 DIMESION RAM)Case 17 :arrMemory(Num*6-2) = "SDRAM" '同步动态随机存储器,即Synchronous DRAMCase 18 :arrMemory(Num*6-2) = "SGRAM" '单⼝随机存储器(Signal RAM)Case 19 :arrMemory(Num*6-2) = "RDRAM" '总线式动态随机存储器Case 20 :arrMemory(Num*6-2) = "DDR" '双倍速率同步动态随机存储器,⼀个时钟周期内传输⼆次数据Case 21 :arrMemory(Num*6-2) = "DDR-2" '双倍速率同步动态随机存储器2,⼀个时钟周期内传输⼆次数据,4bit数据预读取能⼒ End SelectSelect Case objMemory.FormFactor '封装类型(接⼝类型)Case 0 :arrMemory(Num*6-1) = "Unknown" '未知Case 1 :arrMemory(Num*6-1) = "Other" '其它Case 2 :arrMemory(Num*6-1) = "SIP" '单列直插式封装Case 3 :arrMemory(Num*6-1) = "DIP" '双列直插式封装(Dual ln-line Package)Case 4 :arrMemory(Num*6-1) = "ZIP" '零插拔⼒封装(Zero Insertion Package)Case 5 :arrMemory(Num*6-1) = "SOJ" '⼩尺⼨(⼩外形)J形引脚封装(Small Out-Line J-Lead)Case 6 :arrMemory(Num*6-1) = "Proprietary" '专有封装(有专利权的)Case 7 :arrMemory(Num*6-1) = "SIMM" '单列直插式封装(Single Inline Memory Module)Case 8 :arrMemory(Num*6-1) = "DIMM" '双列直插式封装(Dual Inline Memory Module)Case 9 :arrMemory(Num*6-1) = "TSOP" '薄型⼩尺⼨封装(Thin Small Outline Package)Case 10 :arrMemory(Num*6-1) = "PGA" '陈列引脚封装。

VB.NET获取MAC地址

VB.NET获取MAC地址

方法一:nbtstat 命令Public Function GetMac(ByVal IP As String) As StringTry'定义输出变量。

Dim StrMac As String = String.EmptyDim Str As String = String.Empty'定义进程参数。

Dim Info As New ProcessStartInfoInfo.FileName = ";nbtstat";Info.Arguments = ";-a "; + IPeShellExecute = FalseInfo.RedirectStandardInput = FalseInfo.RedirectStandardOutput = TrueInfo.RedirectStandardError = TrueInfo.CreateNoWindow = TrueInfo.WindowStyle = ProcessWindowStyle.Hidden'定义新进程。

Dim mProcess As New Process'开始执行操作。

mProcess = Process.Start(Info)'无限循环按行读取输出内容。

While True'读取一行数据。

Str = mProcess.StandardOutput.ReadLine()mProcess.WaitForExit()StrMac = Str.Trim()'判断是否有 Mac Address字眼。

If StrMac.ToLower.Contains(";mac address";) ThenExit WhileElseIf StrMac.ToLower.Contains(";host not found";) ThenExit WhileEnd IfEnd IfEnd While'返回值。

VBScript编写的获取本机IP、子网掩码、网关等信息的代码。帮顶也有分。多谢!救急

VBScript编写的获取本机IP、子网掩码、网关等信息的代码。帮顶也有分。多谢!救急

VBScript编写的获取本机IP、子网掩码、网关等信息的代码。

帮顶也有分。

多谢!救急BScript编写的获取本机IP、子网掩码、网关等信息的代码。

帮顶也有分。

多谢!救急 发布于:2012-03-09 16:54:57 浏览:31次VBScript编写的获取本机IP、子网掩码、网关等信息的代码。

帮顶也有分。

谢谢!救急各位大侠们,小弟初学VB,请求一段完整的获取本机IP等信息的代码,希望高手们不吝帮帮小弟!谢谢了!------解决方案-------------------- code'添加對System.Management的引用Imports System.ManagementModule Module1Sub Main()Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration") Dim nics As ManagementObjectCollection = mc.GetInstances()Dim nic As ManagementObjectFor Each nic In nicsIf Convert.ToBoolean(nic("ipEnabled")) ThenSystem.Console.WriteLine(nic("IPAddress")(0))System.Console.WriteLine(nic("IPSubnet")(0))System.Console.WriteLine(nic("DefaultIPGateway")(0)) End IfNextEnd SubEnd Module------解决方案--------------------VBScript 里用WMI..网上有把..。

怎么用命令行来查看MAC地址

怎么用命令行来查看MAC地址

怎么用命令行来查看MAC地址
通过系统命令行,我们可以查看很多电脑内的东西,下面就让店铺教大家如何用命令行来查看Mac地址。

命令行查看MAC地址
简单介绍一下MAC地址。

MAC地址是网卡的物理地址,大小是48位(6个字节,8位=1字节) 通常显示的格式为12位的16进制数。

(1位16进制数等于4位二进制数)
点击开始菜单,打开运行对话框输入cmd,进入到命令提示符窗口。

我们使用最简单的方法,在命令行下输入getmac,系统将会显示网卡的MAC地址。

上图中的物理地址就是MAC地址。

我们还可以输入ipconfig/all命令来查看MAC地址,此命令还带有非常丰富的网络配置信息,例如IP地址,网关,DNS地址,etc。

除此之外,我们还可以利用nbtstat命令来获取MAC地址。

命令提示符下输入nbtstat -a 本机IP地址,就可以获取到MAC 地址。

见下图。

当然了,我们也可以利用wmic命令来获取MAC地址。

在命令提示符下输入wmic nic where netconnectionid!=NULL get macaddress。

也可以得到MAC地址。

WMIC是一种高级Windows命令集合。

首次使用WMIC需要安装,有交互式和非交互式操作两种。

MAC地址是存储在网卡芯片的地址,设备制造商可以申请来获得。

同时网卡地址也是可以被修改的。

如何获取局域网内所有电脑MAC地址

如何获取局域网内所有电脑MAC地址

如何获取局域网内所有电脑MAC地址
为方便局域网管理,以及预防病毒攻击,我们经常会需要制作局域网设备MAC地址表来比对、核查。

今天店铺就给大家介绍一下利用DOS命令来实现局域网所有电脑MAC地址获取的方法。

获取局域网内所有电脑MAC地址的方法一
set ip=192.168.1 && for /l %j in (1,1,254) do (ping %ip%.%j -n 1 -w 1000 ) && arp -a>1.txt
该方法适合在小IP地址范围内获取mac地址,因为如果范围过大,ping命令执行的时间会比较长,会造成早前arp地址表中获取的mac超时失效,从而无法获取局域网内完整的mac地址表。

如下图,分别是上属命令运行过程中的arp表内容,前、后表对比,很容易看出,部分mac地址已经丢失,而且还存在为全0的非真MAC地址。

获取局域网内所有电脑MAC地址的方法二
set ip=192.168.1 && for /l %j in (1,1,254) do ( ping %ip%.%j -n 1 -w 1000 |arp -a %ip%.%j |findstr dynamic >>2.txt ) 相对方法1,该方法应该是比较完美的。

在ping执行后,即时将获取的真实mac地址保存了下来。

END。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Wscript.Quit
end if
function ABC(byval a)
for i = 1 to len(a)
if (mid(a,i,1)>="a" and mid(a,i,1)<="z") or (mid(a,i,1)>="A" and mid(a,i,1)<="Z") then
n=n+1
exit for
else
n=0
end if
next
abc=n
end function
function inputname
name = InputBox("请输入姓名")
If IsEmpty(name) Then
MsgBox "是不是没写姓名,请重新打吧"
call inputname
Set ws = CreateObject("WScript.Shell")
ws.Run "cmd /k ipconfig /all >d:\ip.txt",0e
if abc (name)>0 then
msgbox "姓名中有英文或数字,请重新打开程序输入中文姓名,谢谢"
strFileNew = "\\192.168.0.220\公共区域\临时空间(15天自动清空)\" & (name)&(mac)&".txt"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
objFSO.CopyFile (strFile),(strFileNew)
For Each mo In mc
If mo.IPEnabled=True Then
mac=mo.MacAddress
Exit For
End If
Next
mac=cstr(mac)
mac=replace(mac,":","")
Dim objFSO
Dim strFileNew
strFile = "d:\ip.txt"
Else
msgBox "你输入的名字是:"+(name)
End If
end function
if IsNumeric (name)=true then
msgbox "姓名中有数字,请重新打开程序输入中文姓名,谢谢"
Wscript.Quit
end if
Dim mc,mo
Set mc=GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
相关文档
最新文档