中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-25 06:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理如何获得本机的IP和MAC地址然后进行绑定? 查看 11,038 回复 31
16 发表于 2006-09-29 05:15 ·  中国 江苏 苏州 电信
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
呵呵,被 namejm 感染,现在也开始有“不生成临时文件”的偏好了。 ^_^
17 发表于 2006-09-29 11:54 ·  中国 山东 菏泽 电信
银牌会员
★★★
积分 1,246
发帖 488
注册 2003-11-11 00:00
22年会员
UID 12699
性别 男
状态 离线
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 发表于 2006-09-29 13:02 ·  中国 广东 佛山 广东睿江科技有限公司
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
Originally posted by wang6610 at 2006-9-29 11:54:


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

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

  以后还是对del和rd之类的语句小心为妙,建议各位在写类似语句的时候,尽量用echo语句来演示,让别人觉得满意了再修改不迟,尽量在显眼的地方加入警示语,以免别人测试的时候遭受不必要的损失。
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
19 发表于 2006-09-30 02:11 ·  中国 上海 电信
初级用户
积分 47
发帖 23
注册 2006-09-27 20:54
19年会员
UID 63820
状态 离线
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 发表于 2006-09-30 02:16 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
建议for /? 其实就是for语句的用法, 没什么.

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

用计数的方式实现了提取不同的IP和MAC以及网关. 如果不用这种计数方式提取指定几个数据, 就不好绑定网卡了.
21 发表于 2006-09-30 02:20 ·  中国 上海 电信
初级用户
积分 47
发帖 23
注册 2006-09-27 20:54
19年会员
UID 63820
状态 离线
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 发表于 2006-09-30 02:24 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
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 发表于 2006-09-30 02:36 ·  中国 上海 电信
初级用户
积分 47
发帖 23
注册 2006-09-27 20:54
19年会员
UID 63820
状态 离线
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 发表于 2006-09-30 09:36 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
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 发表于 2006-10-07 04:20 ·  中国 江苏 南京 电信
新手上路
积分 4
发帖 2
注册 2006-10-07 01:41
19年会员
UID 64754
性别 男
状态 离线
学习了
26 发表于 2006-10-07 06:12 ·  中国 浙江 衢州 电信
银牌会员
★★★
积分 1,270
发帖 548
注册 2004-05-31 00:00
22年会员
UID 25754
性别 男
状态 离线
这样的讨论真的能让人长见识。
27 发表于 2006-10-09 03:23 ·  中国 贵州 贵阳 电信
新手上路
积分 2
发帖 1
注册 2006-10-05 01:42
19年会员
UID 64557
状态 离线
如果我是双网卡的PC
两快网卡的IP的网关都需要绑定
用上面提到的方法 可以绑定第一块网卡的IP和网关
那应该怎么检测是否有第二块网卡
如果有的话两块网卡一起绑定
28 发表于 2006-10-09 05:38 ·  中国 湖南 娄底 新化县 电信
银牌会员
★★★
积分 1,218
发帖 485
注册 2006-07-21 21:24
19年会员
UID 58987
来自 湖南.娄底
状态 离线
楼上兄弟把 ipconfig /all 的显示贴出来看看.
29 发表于 2006-12-04 12:34 ·  中国 北京 海淀区 联通
新手上路
积分 19
发帖 9
注册 2006-11-29 15:24
19年会员
UID 72098
性别 男
状态 离线
DOS,代表着自由开放与发展,我们努力起來,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!
30 发表于 2006-12-04 13:15 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
19年会员
UID 59080
状态 离线

  楼上的兄弟也不用这么灌水吧? 汗一个先……
论坛跳转: