根据MAC地址修改固定IP(附带IP&MAC扫描脚本)
2013-03-27 11:31
375 查看
因公司重新规划网络,以前的固定IP需重新分配,又不想一台台的去改,那个不是一般的累。用DHCP又不符合公司环境,所以就搞了这么个脚本出来。
一、VBS脚本,通过MAC地址来修改IP、子网掩码、网关和DNS.'by Winters 2013-3-27 www.yltech.net
'为防止修改未成功而IP冲突,先修改IP获取为自动获取IP地址
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
For Each objNetAdapter In colNetAdapters
errEnable = objNetAdapter.EnableDHCP()
errDNS = objNetAdapter.SetDNSServerSearchOrder(null)
Next
'取得本机器的网卡物理地址: MacAddress
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery _
("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
For Each objNicConfig In colNicConfigs
Set objNic = objWMIService.Get _
("Win32_NetworkAdapter.DeviceID=" & objNicConfig.Index)
'本机器的网卡物理地址写入变量 : strMacAddress
strMacAddress = objNic.MACAddress
Next
'读取配置文件,这里需要有个IPlist.txt,最好是用绝对地址
Set fso = CreateObject("Scripting.filesystemobject")
Set fr = fso.OpenTextFile("iplist.txt", 1)
Do While fr.AtEndOfStream <> True
t = UCase(fr.ReadLine)
If InStr(t, strMacAddress) Then
t = Split(t, "|")
Name = t(0)
IPAddress = t(2)
Exit Do
End If
Loop
'修改IP地址
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strIPAddress = Array(IPAddress)
strSubnetMask = Array("255.255.255.0")
strGateway = Array("192.168.0.1")
strGatewayMetric = Array(1)
strDNS = Array("192.168.0.1","192.168.0.2")
For Each objNetAdapter in colNetAdapters
errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
errDNS = objNetAdapter.SetDNSServerSearchOrder(strDNS)
Next
以上为VBS脚本部分,有同样需求的要根据自己的情况做些修改
一、IP&MAC扫描。以下为脚本:
@echo off&title 扫描MAC,IP,计算机名&color a&mode con: cols=60 lines=22
setlocal enabledelayedexpansion
echo.
echo ============== 制作者:http://www.yltech.net ===============
echo.
echo 扫描计算机名、MAC地址和内网IP,并保存到iplist.txt文件
echo.
echo ================== 制作不易,请保留版权 ==================
echo.
:: iqp -> 内网IP的前3位,ip1 -> 起始ip,ip2 -> 结束ip
set ipq=192.168.0
set /a ip1=1
set /a ip2=10
set /a con=0
set /a contotal=%ip2%-%ip1%+1
echo PCName MACAddress IPAddress >iplist.txt
for /l %%i in (!ip1!,1,!ip2!) do (
set ip=!ipq!.%%i
echo 扫描!ip!
ping !ip! -n 1 -w 1 >nul
if !errorlevel! equ 0 (
for /f "tokens=1" %%j in ('nbtstat -a !ip! ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%j
for /f "tokens=4 delims=* " %%j in ('nbtstat -a !ip! ^| find /i "MAC Address"') do set mac=%%j
echo !pcname!;!mac:~0,-1!;!ip! >>iplist.txt
set /a con=!con!+1
)
)
echo 共%con%条记录
echo 共扫描:%contotal%台机器,扫描到:%con%个有效记录&pause >nul
1、修改脚本中IPQ(网段)\IP1(起始IP)和IP2(结束IP)
2、修改生成的iplist.txt文件,每行有两处需修改。第一是修改间隔符“;”为“|”,第二是修改获取的MAC地址中间的分隔符“-”为“:”另外可以的话清除IP地址后面的那个空格。
我个人博客也有一份http://www.yltech.net/2013/03/macipipmac.html,可能是我不会操作,贴上来的代码缩进位都没了。转到这里来了传一份附件吧。本文出自 “@Win” 博客,请务必保留此出处http://winterscn.blog.51cto.com/167048/1163453
相关文章推荐
- 根据mac来配置ip的vbs脚本
- arp根据IP查找mac地址的过程
- 修改IP和注册表Mac地址的方法
- 通过 MAC 地址得到IP的脚本
- 用纯Java代码根据IP获取windows和linux的MAC物理地址
- Ubuntu Kylin 14.04-修改IP固定地址
- Scapy:局域网MAC地址扫描脚本
- JSF/JAVA 根据IP获取客户端Mac地址
- 扫描局域网中IP MAC地址的命令
- java根据本地IP获取mac地址的方法
- java服务器端根据ip获取客户端mac地址
- 动态跟踪 PPPoE 上网的 IP 并重定向到固定地址的脚本(bchyi.sh)
- ubuntu系统复制到其他地方或克隆后,如何正确修改IP及MAC地址的解决方案(图文详解)
- 脚本-根据ip和mask获取网络地址
- IP被封?教你两招修改网卡MAC地址
- IP被封?教你两招修改网卡MAC地址
- 根据MAC地址设定指定IP,学习SHELL尝试写的
- vbs Windows系统改变或修改网卡的MAC地址的脚本与软件第1/2页
- 修改IP和Mac地址的另类方法
- java根据本地Ip获取mac地址