如何利用dos批处理,判断计算机的mac地址!
发布网友
发布时间:2022-04-25 15:39
我来回答
共4个回答
热心网友
时间:2023-10-13 17:29
一:双向MAC绑定
@echo off
::读取本机Mac地址
if exist ipconfig.txt del ipconfig.txt
ipconfig /all >ipconfig.txt
if exist phyaddr.txt del phyaddr.txt
find "Physical Address" ipconfig.txt >phyaddr.txt
for /f "skip=2 tokens=12" %%M in (phyaddr.txt) do set Mac=%%M
::读取本机ip地址
if exist IPAddr.txt del IPaddr.txt
find "IP Address" ipconfig.txt >IPAddr.txt
for /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.txt
find "Default Gateway" ipconfig.txt >GateIP.txt
for /f "skip=2 tokens=13" %%G in (GateIP.txt) do set GateIP=%%G
::读取网关Mac地址
if exist GateMac.txt del GateMac.txt
arp -a %GateIP% >GateMac.txt
for /f "skip=3 tokens=2" %%H in (GateMac.txt) do set GateMac=%%H
::绑定网关Mac和IP
arp -s %GateIP% %GateMac%
arp -s 网关IP 网关MAC
exit
这个批处理要查询本机的ARP 缓存表,看里面是不是有网关的IP和MAC,有则能成功
绑定,但是没有的话就绑不定了!!!不过可以改进一下,达到双绑的目的,比如
加上arp -s 网关IP 网关MAC一行就可以了。。。
二、这个也不能实现真正意义的双绑,只能绑定本机IP和MAC
(多谢中国DOS联盟lxmxn提供)
@echo off
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "Physical Address"') do set local_mac=%%a
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "IP Address"') do set local_ip=%%a
for /f "delims=: tokens=2" %%a in ('ipconfig /all^|find "Default Gateway"') do set gate_ip=%%a
fo* /* %%* in ('getmac /nh /s %local_ip%') do set gate_mac=%%a
arp -s %local_ip% %local_mac%
arp -s %gate_ip% %gate_mac% (这个地方有问题,改进中……)
经测试,此批处理不能绑定网关IP和MAC,只能绑定本机IP和MAC
三、这个还不是很清楚,我要测试才行的,目前所知也能绑定本机IP和MAC
(多谢中国DOS联盟everest79提供)
@ECHO OFF
SETLOCAL ENABLEDELAYEDEXPANSION
for /f "tokens=2 delims=[]=" %%i in ('nbtstat -a %COMPUTERNAME%') do call set local=!local!%%i
for /f "tokens=3" %%i in ('netstat -r^|find " 0.0.0.0"') do set gm=%%i
for /f "tokens=1,2" %%i in ('arp -a %gm%^|find /i /v "inter"') do set gate=%%i %%j
arp -s %gate%
arp -s %local%
arp -s 网关IP 网关MAC
这个批处理可以绑定网关IP和MAC,但是还是有缺陷,要依赖于本机上存在的ARP缓存!
改进方法为在最后加一个arp -s 网关IP和MAC!
四、这个是一个兄弟的博客上找到的,原理和第一个一样,只是改进了一点点!
这个P通过ping网关三次得到了网关的MAC其实以上的批都可以通过这个来搞定网关的IP和MAC,
但是如果开机的时候正在发生ARP欺骗的话这样你绑的IP和MAC就是错的,不能上网了。。
不过这种情况很少,发过来试一下先吧!
@echo off
清除所有的ARP缓存
arp -d
读取本地连接配置
ipconfig /all>ipconfig.txt
读取内网网关的IP
for /f "tokens=13" %%I in ('find "Default Gateway" ipconfig.txt') do set GatewayIP=%%I
PING三次内网网关
ping %GatewayIP% -n 3
读取与网关arp缓存
arp -a|find "%GatewayIP%">arp.txt
读取网关MAC并绑定
for /f "tokens=1,2" %%I in ('find "%GatewayIP%" arp.txt') do if %%I==%GatewayIP% arp -s %%I %%J
读取本机的 IP+MAC
for /f "tokens=15" %%i in ('find "IP Address" ipconfig.txt') do set ip=%%i
for /f "tokens=12" %%i in ('find "Physical Address" ipconfig.txt') do set mac=%%i
绑定本机的 IP+MAC
arp -s %ip% %mac%
删除所有的临时文件
del ipconfig.txt
del arp.txt
exit
以上P可以配合路由上对客户机的IP和MAC进行绑定实现完全防ARP,只是单绑下面机和网关IP及MAC
热心网友
时间:2023-10-13 17:29
批量IP,计算机名,工作组,域自动修改工具 绿色版本 V 0.5
工作原理:
1、客户机全部使用 DHCP 方式获取 IP 地址。由 DHCP 记录获取所有客户机的 MAC 地址列表。
2、生成所需格式的 IP 地址和计算机名列表文件 MAC.INI 。
3、客户机程序根据 MAC.INI 文件修改 IP 地址和计算机名等信息。
所需环境:
客户机要求能支持网卡 PXE 启动,或者能由硬盘、光盘等启动任一能自动获取 IP 的网络环境 (DHCP Client)。
工作流程:
1、先在服务器上启用 DHCP 服务,如使用 2003 或 TFTPD32 的 DHCP 功能。
2、按顺序逐台启动客户机(按顺序启动主要是为了便于规范计算机名)。
3、在服务器上导出 DHCP 记录。
4、使用 MACList.EXE 处理 DHCP 记录,生成 MAC.INI 文件。
5、将 ModiIP.exe 和 MAC.INI 文件打包进客户机 Ghost 镜像中。或者只打包 ModiIP.exe,
将 MAC.INI 放在 TFTP 服务器上,由 ModiIP.exe 从网络获取。
6、网络克隆后客户机在启动时调用 ModiIP.exe 修改 IP 和 计算机名等信息。
MACList 相关说明
IP 地址设为“DHCP”表示自动获取 IP,留空表示不修改 IP 地址。
网关设为“NONE”表示删除网关,留空表示不修改。
ModiIP 工作参数
/? 此帮助
/A 自动修改
/K 修改后自删除
/R 修改后重启
/N 从网络获取配置文件
/IP: xxx.xxx.xxx.xxx 从指定 IP 获取配置文件
注意事项:
1、客户端软件 ModiIP.exe 只支持 2000/XP。
2、MACList.exe 未考虑 IP 合法性、计算机名长度内容合法性判断,使用时请自行注意。
3、若 ModiIP.exe 只使用 /n 参数而未指定 /IP 参数,则自动查找 DHCP 服务器地址,
尝试通过此地址的 TFTP 服务下载配置文件。
4、加入域功能暂时只对尚未加入过域的计算机有效。
5、对已加入域的计算机暂不支持加入到工作组。
6、加入域或工作组功能不支持 Windows 2000。
热心网友
时间:2023-10-13 17:29
你先使用ping命令探测他的ip地址,当然不通了,但是没关系,马上用arp -a查看,就有他的MAC地址了。
热心网友
时间:2023-10-13 17:30
点开始→运行→cmd→ipconfig /all 就可以察看你本机的IP地址和MAC地址了!