中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 15:57
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » 批处理如何获得本机的IP和MAC地址然后进行绑定?
可打印版本  11,422 / 31
第16楼 NaturalJ0 发表于 2006-09-29 05:15
银牌会员 发帖 533 积分 1,181
呵呵,被 namejm 感染,现在也开始有“不生成临时文件”的偏好了。 ^_^
第17楼 wang6610 发表于 2006-09-29 11:54
银牌会员 发帖 488 积分 1,246
Originally posted by iaide007 at 2006-9-10 05:41 PM:
@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.t ...


气愤删了我的TXT文件!!!!!!!!!!
第18楼 namejm 发表于 2006-09-29 13:02
荣誉版主 发帖 1,737 积分 5,226 来自 成都
Originally posted by wang6610 at 2006-9-29 11:54:


气愤删了我的TXT文件!!!!!!!!!!

  哎呀,那个代码里有一句令人闻风丧胆的语句,还是屏蔽了吧:del *.txt。这个东西有点危险哦。对你的遭遇表示同情。

  以后还是对del和rd之类的语句小心为妙,建议各位在写类似语句的时候,尽量用echo语句来演示,让别人觉得满意了再修改不迟,尽量在显眼的地方加入警示语,以免别人测试的时候遭受不必要的损失。
第19楼 sea2moon 发表于 2006-09-30 02:11
初级用户 发帖 23 积分 47
Originally posted by pengfei at 2006-9-19 02:40:
@echo off
setlocal enabledelayedexpansion
set ipfilter=0
set macfilter=0
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find "IP Address"') do (
for /f "tok ...

pengfei兄的这段代码看的不是很懂,尤其是有两个DO的那个地方
能否给小弟解释下?
第20楼 pengfei 发表于 2006-09-30 02:16
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
建议for /? 其实就是for语句的用法, 没什么.

ipconfig /all如果是宽带用户, 会显示两个ip两个mac地址, 以及两个网关.

用计数的方式实现了提取不同的IP和MAC以及网关. 如果不用这种计数方式提取指定几个数据, 就不好绑定网卡了.
第21楼 sea2moon 发表于 2006-09-30 02:20
初级用户 发帖 23 积分 47
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find "IP Address"') do (
for /f "tokens=2* delims=:" %%i in ('ipconfig /all ^| find "Physical Address"') do
(
set iptemp=%%a
set mactemp=%%i
if "!ipfilter!"=="0" set ip=!iptemp:~1!
if "!macfilter!"=="0" set mac=!mactemp:~1!
set /a ipfilter=!ipfilter!+1
set /a macfilter=!macfilter!+1
)

)
主要是这个地方不懂,有两个DO,我就蒙了,一个的我能理解
DO后面我只知道用的是commond (/...)

[ Last edited by sea2moon on 2006-9-30 at 02:23 ]
第22楼 pengfei 发表于 2006-09-30 02:24
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
Originally posted by sea2moon at 2006-9-30 02:20:
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find "IP Address"') do (
for /f "tokens=2* delims=:" %%i in ('ipconfig /all ^| find "Physic ...


这是一个FOR语句嵌套的问题!
第23楼 sea2moon 发表于 2006-09-30 02:36
初级用户 发帖 23 积分 47
if "!ipfilter!"=="0" set ip=!iptemp:~1!
if "!macfilter!"=="0" set mac=!mactemp:~1!
set /a ipfilter=!ipfilter!+1
set /a macfilter=!macfilter!+1
还有,这里也不太懂,不好意思啊。我初学没几天。。。
问题比较多,其中 if "!ipfilter!"=="0"变量ipfilter从设定一直为0,我改成
@echo off
for /f "tokens=2* delims=:" %%a in ('ipconfig /all ^| find "IP Address"') do (
for /f "tokens=2* delims=:" %%i in ('ipconfig /all ^| find "Physical Address"') do (
set iptemp=%%a
set mactemp=%%i
set ip=!iptemp:~1!
set mac=!mactemp:~1!
)
)
arp -s %ip% %mac%
也是可以的。我试了下(我只是内网)
不过,set /a ipfilter=!ipfilter!+1变量是不是在数值上+1,是什么意思,我在想,ipfilter这个变量最后在ARP上用到了没有?
谢谢peng兄的细心回复

[ Last edited by sea2moon on 2006-9-30 at 02:46 ]
第24楼 pengfei 发表于 2006-09-30 09:36
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
Originally posted by sea2moon at 2006-9-30 02:36:
if "!ipfilter!"=="0" set ip=!iptemp:~1!
if "!macfilter!"=="0" set mac=!mactemp:~1!
set /a ipfilter=!ipfilter!+1
set /a macfilter=! ...


大家互相帮助...

你的内网可能只有一个IP和MAC, 这段代码在我的电脑上显示的是电信路由器的IP和MAC地址.

另外发现这段代码没有开启延缓的环境变量, 可能你没复制的时候出错了. setlocal enabledelayedexpansion
第25楼 ros244 发表于 2006-10-07 04:20
新手上路 发帖 2 积分 4
学习了
第26楼 weilong888 发表于 2006-10-07 06:12
银牌会员 发帖 548 积分 1,270
这样的讨论真的能让人长见识。
第27楼 koney 发表于 2006-10-09 03:23
新手上路 发帖 1 积分 2
如果我是双网卡的PC
两快网卡的IP的网关都需要绑定
用上面提到的方法 可以绑定第一块网卡的IP和网关
那应该怎么检测是否有第二块网卡
如果有的话两块网卡一起绑定
第28楼 pengfei 发表于 2006-10-09 05:38
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
楼上兄弟把 ipconfig /all 的显示贴出来看看.
第29楼 31676201 发表于 2006-12-04 12:34
新手上路 发帖 9 积分 19
DOS,代表着自由开放与发展,我们努力起來,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
第30楼 lxmxn 发表于 2006-12-04 13:15
版主 发帖 4,938 积分 11,386

  楼上的兄弟也不用这么灌水吧? 汗一个先……
上一页  1 2 3  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023