中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: ARP绑定批处理的蹊跷 上一主题 | 下一主题
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『楼 主』:  ARP绑定批处理的蹊跷

-------------------绑定本机IP与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
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
arp -s %IP% %Mac%
del ipaddr.txt
del ipconfig.txt
del phyaddr.txt

上例是用过渡文件做绑,优点是100%成功,缺点是需要过渡文件,对于玩火者是约不允许的(我就喜欢精简代码)

再来看下例:
@echo off
arp -d
for /f "skip=17 tokens=13 usebackq" %%i in (`ipconfig/all`) do set GateWay=%%i&&goto IP
:ip
for /f "skip=15 tokens=15 usebackq" %%i in (`ipconfig/all`) do set IP=%%i&&goto Mac
:Mac
for /f "skip=13 tokens=12 usebackq" %%i in (`ipconfig/all`) do set Mac=%%i&&goto GateMac
:GateMac
ping /n 1 %GateWay%>nul
for /f "skip=3 tokens=2 usebackq" %%i in (`arp -a %GateWay%l`) do set GateMac=%%i&&goto echo

:echo
echo\
echo/
echo    网关IP:%GateWay%   网关MAC:%GateMac%
echo    本机IP:%IP%   本机MAC:%Mac%
pause>nul

上面的代码在FOR命令后不加&&和goto跳转就绝对失败,这个脚本运行时,有时成功有时失败,而第一例的是不管运行多少次都成功,为什么有这么奇怪的事情发生呢?百思不得其解?

2008-3-14 06:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

skip只能跳过前面的行,而后面的行是无法跳过的。

建议使用(·ipconfig /all ^| find "关键字"`)作为for命令的过滤源,这样就没有必要做跳转操作了。例如:
for /f "usebackq tokens=12" %%M in (`ipconfig /all ^| find "Physical Address"`) do set Mac=%%M

不过如果一台机器安装了多个网卡,这还是无效的,要进一步想办法。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-3-14 11:22
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
jiulong
中级用户




积分 396
发帖 183
注册 2007-12-23
状态 离线
『第 3 楼』:  

楼上确实说得很正确,安装多块网卡的时候任何ARP绑定批处理都失效
除非固定死的 ARP -S IP MAC就不会失效

2008-3-19 02:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: