求高手做一个批处理,能根据指定MAC地址更改相对应本地连接的IP地址。XP系统双物理网卡。
电脑有两个网卡,名称不定,可能是本地连接和本地连接2,或者是本地连接3和本地连接4。要做到用批处理修改指定MAC地址的那个网络连接的IP地址。单网卡的批处理修改方法已经掌...
电脑有两个网卡,名称不定,可能是本地连接和本地连接2,或者是本地连接3和本地连接4。要做到用批处理修改指定MAC地址的那个网络连接的IP地址。单网卡的批处理修改方法已经掌握,现在不知道双网卡的系统环境怎么用批处理去判断是哪个网络连接?
本人批处理不精,求高手帮忙。 展开
本人批处理不精,求高手帮忙。 展开
1个回答
展开全部
写个xp中用ipconfig信息整理出对应的连接
echo off
set "mac=11-22-33-AA-BB-CC"
setlocal enabledelayedexpansion
echo 正在获取所有连接与MAC对应信息 ...
for /f "tokens=* delims=:" %%a in (
'ipconfig/all^|findstr/i /c:"Ethernet adapter" /c:"Physical Address"')do (
echo %%a
set "q=%%a"
if not "!q:%mac%=!"=="!q!" (
for /f "tokens=2* delims=: " %%b in ('echo;%%#!n!%%')do set eth=%%c)
set "#!n!=%%a")
echo;
if not defined eth (
set/p=未找到指定网卡 %mac% 请按任意键退出... <nul
pause>nul&exit /b)
endlocal&set "eth=%eth::=%"
echo 对应网卡 %mac% :%eth%
pause
echo off
set "mac=11-22-33-AA-BB-CC"
setlocal enabledelayedexpansion
echo 正在获取所有连接与MAC对应信息 ...
for /f "tokens=* delims=:" %%a in (
'ipconfig/all^|findstr/i /c:"Ethernet adapter" /c:"Physical Address"')do (
echo %%a
set "q=%%a"
if not "!q:%mac%=!"=="!q!" (
for /f "tokens=2* delims=: " %%b in ('echo;%%#!n!%%')do set eth=%%c)
set "#!n!=%%a")
echo;
if not defined eth (
set/p=未找到指定网卡 %mac% 请按任意键退出... <nul
pause>nul&exit /b)
endlocal&set "eth=%eth::=%"
echo 对应网卡 %mac% :%eth%
pause
追问
非常感谢你的回答,可能我前面的问题不是很清楚,还得具体问一下。
我是要远程做GHOST,做完后让计算机在MAC地址列表文件中找到自己的MAC地址,并设置网络连接的IP地址、子网掩码、网关等信息。远程计算机有两个网卡,只插了一根网线,就是要设置插网线的那个网卡的IP地址等信息。单网卡且网络连接名称为“本地连接”的批处理我已经测试成功,现在不知道双网卡且网络连接名称不确定时怎么写批处理才能行。
追答
就是说无法提前指定MAC所以没法按此代码执行?
可以把两MAC对应连接都找出来,分别为et1 mac1和et2 mac2 再查要更改的ip mac对应表文件,就找出了是哪个网络连接及要改的 IP地址等具体数值,其实我就bat会一点,对网络命令接触少,还有wmic 感觉应该没刚才说的麻烦,建议有时间不妨搜一下wmic nicconfig的用法
@echo off
setlocal enabledelayedexpansion
echo 正在获取所有连接与MAC对应信息 ...
for /f "tokens=1* delims=:" %%a in (
'ipconfig/all^|findstr/i /c:"Ethernet adapter" /c:"Physical Address"')do (
set/a "n+=1,m1=n%%2,m2=(n+1)/2"
if !m1!==0 (
set "q=%%b"
set "mac!m2!=!q: =!"
call echo !m2!.%%eth!m2!%%:%%b
) else (
for /f "tokens=2* delims=: " %%c in ("%%a")do (
set "eth!m2!=%%d")
)
)
echo;
pause
以上代码已将多网卡的连接名、mac值分别赋两数组变量了(eth序号mac序号),我不清楚已登记文件格式可以用形如
for /l %%i in (1,1,%m2%) do (
for /f ..........in ('find "!mac%%i!^<"文件名" ) do (
.......)) 来完成
麦保(深圳)科技有限公司_
2023-03-28 广告
2023-03-28 广告
cleanmymac是我必装的mac端清理软件,界面简洁好看,完美适配mac系统,文件清理的速度、精度都比较优秀,还是比较不错的呢。cleanmymac作为一款第三方清洁应用程序,具有专业完整的清理功能,包括释放内存、一键智能扫描垃圾和缓存...
点击进入详情页
本回答由麦保(深圳)科技有限公司_提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询