可以试试这个批处理,我测试下是能改的,使用方法就是把你的电脑ip、mac、计算机名等信息都用excel编辑好,粘贴在脚本最下面就行了;
ps:来源于网络……
@echo off
::1设置环境变量
set MASK=2552552550
set GATEWAY=192168311
set DNS1=20210117235
set DNS2=20210117248
set WINS=192168311
set run_log=%temp%\run_logtxt
::2运行环境检查
echo >%run_log%
echo >>%run_log%
echo ======================================>>%run_log%
echo 运行时间 %date% %time% >>%run_log%
echo ======================================>>%run_log%
del %temp%\mactxt >nul 2>nul
del %temp%\atxt >nul 2>nul
wmic nic >nul 2>nul
wmic nic >nul 2>nul >%temp%\atxt && (find /i "MACAddress" %temp%\atxt >nul 2>nul || echo 运行权限不够,请以管理员运行 >>%run_log% && start %run_log% &&exit)
::3获取本机所有MAC,地址,格式为 XX-XX-XX-XX-XX-XX
wmic nic get MACAddress >%temp%\nametxt && for /f "skip=1" %%i in ('type %temp%\nametxt') do for /f "tokens=1-6 delims=:" %%I in ("%%i") do echo %%I-%%J-%%K-%%L-%%M-%%N>>%temp%\mactxt
::4将获取到的本机MAC地址逐一到本批处理后面的列表去查找,匹配的通常是本地连接的MAC连接,将匹配的MAC地址保存下来。
:: 注1:这种方式可以应对电脑上安装虚拟机,或者机器是win7及以上的系统,会有多个MAC。
:: 注2:至少要有一个匹配MAC,如果找不到任何匹配MAC,则报错退出。这可以避免在没有收集MAC的机器上运行时,错误修改原来的信息。
del %temp%\exist-mactxt >nul 2>nul
for /f %%i in (%temp%\mactxt) do find /i "%%i" %0 >nul 2>nul && echo %%i>%temp%\exist-mactxt
if exist %temp%\exist-mactxt (for /f %%i in (%temp%\exist-mactxt) do set MAC=%%i) else (echo 未找到匹配的MAC项,中断批处理执行 >>%run_log% &&start %run_log% &&exit)
::5获取找到MAC地址对应的网络连接名称,通常是本地连接,
:: 注1:对于一些多网卡环境,如机器装有多块网卡,会生成本地连接 2的名称, 注意:2前面有个空格,
:: 注2:还有一种情况,本地连接的名称被改,在学校机房,干这种事情的人大有人在
for /f "tokens=1-6 delims=-" %%i in ("%MAC%") do set MAC1=%%i:%%j:%%k:%%l:%%m:%%n
wmic nic where MACaddress="%MAC1%" get NetConnectionID >%temp%\mac1txt && for /f "tokens= skip=1" %%i in ('type %temp%\mac1txt') do if NOT "%%i"=="" set NetConnectionID=%%i
:intercept
if "%NetConnectionID:~-1%"==" " set "NetConnectionID=%NetConnectionID:~0,-1%"&goto intercept
::6获取预设的计算机名\IP地址\计算机描述信息
for /f "tokens=1-4" %%i in ('more /e +10 %0 ^|find /i "%mac%"') do set name=%%i&& set IP=%%j&& set desc=%%l
if "%name%"=="" (echo 匹配MAC预设计算机信息不存在,本程序将退出 >>%run_log% &&start %run_log% &&exit)
if "%ip%"=="" (echo 匹配MAC预设IP地址信息不存在,本程序将退出 >>%run_log% &&start %run_log% &&exit)
if "%desc%"=="" (echo 匹配MAC预设计算机描述信息不存在,本程序将退出 >>%run_log% &&start %run_log% &&exit)
for /f "tokens=1-3 skip=2" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment 2^>nul') do set current_desc1=%%k
for /f "tokens=1-3 skip=2" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment 2^>nul') do set current_desc2=%%k
for /f "tokens=1-3 skip=2" %%i in ('reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName 2^>nul') do set current_name1=%%k
for /f "tokens=1-4 skip=2" %%i in ('reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" 2^>nul') do set current_name2=%%l
for /f "tokens=1-3 skip=2" %%i in ('reg query "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname 2^>nul') do set current_name3=%%k
wmic nicconfig where MACaddress="%MAC1%" get IPaddress>%temp%\atxt && for /f "skip=1 delims=,{} " %%i in ('type %temp%\atxt') do set current_ip=%%~i
wmic nicconfig where MACaddress="%MAC1%" get IPSubnet>%temp%\atxt &&for /f "skip=1 delims=,{} " %%i in ('type %temp%\atxt') do set IPSubnet=%%~i
wmic nicconfig where MACaddress="%MAC1%" get DefaultIPGateway>%temp%\atxt &&for /f "skip=1 delims=,{} " %%i in ('type %temp%\atxt') do set DefaultIPGateway=%%~i
wmic nicconfig where MACaddress="%MAC1%" get DNSServerSearchOrder >%temp%\atxt && for /f "tokens=1-8 skip=1 delims=,{} " %%i in ('type %temp%\atxt') do set current_DNS1=%%~i& set current_DNS2=%%~j& set DNS3=%%~k& set DNS4=%%~l
wmic nicconfig where MACaddress="%MAC1%" get WINSPrimaryServer>%temp%\atxt &&for /f "skip=1 delims=,{} " %%i in ('type %temp%\atxt') do set WINSPrimaryServer=%%i
echo 信息汇总
echo 网络连接名称 %NetConnectionID%
echo MAC地址为 %mac%
echo 当前IP地址 %current_ip% 预设IP地址 %IP%
echo 当前子网掩码 %IPSubnet% 预设子网掩码 %MASK%
echo 当前默认网关 %DefaultIPGateway% 预设默认网关 %GATEWAY%
echo 当前DNS1 %current_DNS1% 预设DNS1 %DNS1%
echo 当前DNS2 %current_DNS2% 预设DNS2 %DNS2%
echo 当前WINS服务器 %WINSPrimaryServer% 预设WINS服务器 %WINS%
echo
echo 当前计算机名 %current_name1% 预设计算机名 %name%
echo 当前描述 %current_desc1% 预设计算机描述 %desc%
echo
echo
::7执行判断、修改计算机名\IP地址\计算机描述信息
if "%current_desc1%"=="%desc%" (echo 计算机注释1符合要求,跳过修改>>%run_log% ) else (echo 正在修改计算机注释1 &% add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %desc% /f >nul 2>nul && echo 修改计算机注释1成功 >>%run_log% || echo 修改计算机注释1失败 >>%run_log%)
if "%current_desc2%"=="%desc%" (echo 计算机注释2符合要求,跳过修改>>%run_log%) else (echo 正在修改计算机注释2 &% add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %desc% /f >nul 2>nul && echo 修改计算机注释2成功>>%run_log% || echo 修改计算机注释2失败 >>%run_log%)
if "%name%"=="%current_name1%" (echo 计算机名1符合要求,跳过修改>>%run_log%) else (echo 正在修改计算机名1 &% add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul && echo 修改计算机名1成功 >>%run_log% || echo 修改计算机名失败 >>%run_log%)
if "%name%"=="%current_name2%" (echo 计算机名2符合要求,跳过修改>>%run_log%) else (echo 正在修改计算机名2 && reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul && echo 修改计算机名2成功 >>%run_log% || echo 修改计算机名失败 >>%run_log%)
if "%name%"=="%current_name3%" (echo 计算机名3符合要求,跳过修改>>%run_log%) else (echo 正在修改计算机名3 && reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul && echo 修改计算机名3成功 >>%run_log% || echo 修改计算机名失败 >>%run_log%)
if "%current_ip%"=="%IP%" (echo IP地址符合要求,跳过修改>>%run_log%) else (set change_pro=IP地址)
if "%IPSubnet%"=="%MASK%" (echo 子网掩码符合要求,跳过修改>>%run_log%) else (set change_pro=%change_pro%、子网掩码)
if "%DefaultIPGateway%"=="%GATEWAY%" (echo 默认网关地址符合要求,跳过修改>>%run_log%) else (set change_pro=%change_pro%、默认网关)
if "%change_pro%"=="" (echo IP地址\子网掩码\默认网关符合要求,跳过修改>>%run_log%) else (echo 正在修改%change_pro% && netsh interface ip set address "%NetConnectionID%" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul && echo 修改%change_pro%成功 >>%run_log% || echo 修改%change_pro%失败 >>%run_log%)
if "%current_DNS1%"=="%DNS1%" (echo DNS1地址符合要求,跳过修改>>%run_log%) else (echo 正在修改DNS1地址 && netsh interface ip set dns "%NetConnectionID%" static %DNS1% register=PRIMARY >nul 2>nul && echo 修改DNS1地址成功 >>%run_log% || echo 修改DNS1地址失败 >>%run_log%)
if "%current_DNS2%"=="%DNS2%" (echo DNS2地址符合要求,跳过修改>>%run_log%) else (echo 正在修改DNS2地址 && netsh interface ip add dns "%NetConnectionID%" %DNS2% index=2 >nul 2>nul && echo 修改DNS2地址成功 >>%run_log% || echo 修改DNS2地址失败 >>%run_log%)
if "%WINSPrimaryServer%"=="%WINS%" (echo WINS地址符合要求,跳过修改>>%run_log%) else (echo 正在修改WINS地址 && netsh interface ip set wins "%NetConnectionID%" static %WINS% >nul 2>nul && echo 修改WINS地址成功 >>%run_log% || echo 修改WINS地址失败 >>%run_log%)
start %run_log%
exit
::以下为预设信息区域
计算机名 新规划地址 MAC地址 计算机描述
12F-JF01-A001 1921683173 B8-97-5A-85-7C-C2 12楼机房A01
12F-JF01-A002 19216812102 54-04-a6-66-bd-bd 12楼机房A02
12F-JF01-A003 19216812103 00-30-67-ba-0c-ac 12楼机房A03
12F-JF01-A004 19216812104 00-e0-62-0b-1f-6c 12楼机房A04
12F-JF01-A005 19216812105 bc-ae-c5-5d-65-c0 12楼机房A05
12F-JF01-A006 19216812106 00-e0-66-02-29-5e 12楼机房A06
12F-JF01-A007 19216812107 50-e5-49-be-c0-dc 12楼机房A07
12F-JF01-A008 19216812108 00-e0-66-0d-71-d9 12楼机房A08
12F-JF01-A009 19216812109 00-e0-66-02-dd-d8 12楼机房A09
点击菜单栏最左上角的苹果图标,找到系统偏好设置,点击进入
从d出的窗口中找到网络选项,点击进去,选择右下角的“高级”
之后找到DNS的标签,然后点击+
将8888和8844这两个补充上去,之后点击好,一直应用下去,DNS就修改好了。
先打开 Mac OS 系统中的偏好设置,在列表中点击打开“网络”图标,如图所示
接下来在网络窗口的左侧,选择要为其设置 DNS 的网络接口。我这里以有线接口为例,选择好接口以后,点击“位置”下拉列表,如图所示
随后请选择“编辑位置”选项,如图所示
在d出的位置编辑窗口中,点击右下方的“+”按钮,随后会新建一个位置的网络配置文件。我这里把它更改为“工作”,好了以后点击“完成”按钮,如图所示
接下来请在网络窗口中点击右下方的“高级”按钮,如图所示
接着请点击顶部的“DNS”一栏,如图所示
在 DNS 设置窗口中,请点击左下方的“+”按钮,添加一个 DNS 服务器地址,如图所示
DNS 地址输入好以后,点击右下角的“好”按钮,如图所示
随后在网络窗口中点击右下角的“应用”按钮,保存我们当前添加的网络配置文件,如图所示
以上就是关于如何实现利用MAC地址更改IP,DNS,计算机名全部的内容,包括:如何实现利用MAC地址更改IP,DNS,计算机名、家庭网络mac的dns地址是多少、Mac怎么修改dns地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)