![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-10 18:30 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 已结:关于自动变换IP地址问题(XP) |
| 可打印版本 8,246 / 22 |
| 第1楼 ronin | 发表于 2005-11-10 13:42 |
| 中级用户 发帖 111 积分 421 | |
|
已结:关于自动变换IP地址问题(XP) 参考资料:
http://www.cn-dos.net/forum/viewthread.php?tid=16990&fpage=12 http://www.cn-dos.net/forum/viewthread.php?tid=17272&fpage=8 问题是:用批处理自动修改XP的IP地址、子网掩码、网关,因为是公司使用,不能都用同一个IP地址,希望是给一段Ip范围比如:192.168.1.*,*是随机分配,限制范围比如:100-200 请问大家怎么来写这个批处理文件 网上找到的资料,大家也参考下 http://www.btvgd.com/net/bbs/topic.php?filename=f_8&forumid=10 [ Last edited by willsort on 2005-11-30 at 19:53 ] |
|
| 第2楼 willsort | 发表于 2005-11-10 20:49 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re ronin:
IP地址等网络配置的修改和产生随机IP都没有什么问题。问题在于如何保证随机IP不会重复,100-200只有101个值,如果运行主机超过20台,便会有很高的可能性发生重复。另外,因为这个批处理可能在多个不同机器上运行,所以一般不考虑生成已占用IP列表的方法,而最好能以个机的特有值做种,以特定散列函数生成唯一对应的值。各位不知对此有何高见?当然如果 ronin 兄有其它折中的方法也不妨提出。 |
|
| 第3楼 ronin | 发表于 2005-11-11 11:00 |
| 中级用户 发帖 111 积分 421 | |
|
可以将范围拉大到100-250这样来生产随机IP地址,一般电脑数量不多,不用考虑重复,如果遇到重复会有提示,这样就重新再运行一次就行,这个问题产生是因为公司电脑系统都是用GHOST,所以IP都是一样,打算就是在GHOST完成以后运行下运行下这个批处理来避开IP重复
|
|
| 第4楼 ronin | 发表于 2005-11-11 20:43 |
| 中级用户 发帖 111 积分 421 | |
| 第5楼 JonePeng | 发表于 2005-11-11 22:30 |
| 金牌会员 发帖 1,883 积分 4,562 来自 广东广州 | |
|
不如将路由器设为允许DHCP,将IP地址的范围(第四位数)设为100~200,再把每台机器的IP和DNS设置都设为自动获取,这样就使每台机在启动进入系统时都自动获取IP,无须手动配置。
|
|
| 第6楼 ronin | 发表于 2005-11-11 22:40 |
| 中级用户 发帖 111 积分 421 | |
|
因为客户网络环境不能自己控制,我是做客服工作的
set x=%random:~-1% set x1=%random:~-1% ;echo Random number: %x% ::把的得到的随机数写入 Wattcp.txt 文件 echo IP=192.168.1.1%x%%x1%> Wattcp.txt echo NETMASK=255.255.255.0>> Wattcp.txt echo GATEWAY=192.168.1.1>> Wattcp.txt 基本上已经取得IP控制在100-199范围,不知道有什么办法指定Random number在100-254范围? |
|
| 第7楼 ronin | 发表于 2005-11-11 23:00 |
| 中级用户 发帖 111 积分 421 | |
|
@echo off
set x=%random:~-1% set x1=%random:~-1% set eth="本地连接" set ip=192.168.1.1%x%%x1% set gateway=192.168.1.1 set netmasks=255.255.255.0 最后写出来的批处理,感觉应该是对的,但是却没有改动本地连接的IP,请问出错在那里 |
|
| 第8楼 无奈何 | 发表于 2005-11-12 00:27 |
| 荣誉版主 发帖 356 积分 1,338 | |
|
你始终是在设置的环境变量,怎么会更改IP呢。要进入netsh 设置模式。
给你转段文章看看是否有启发。
|
|
| 第9楼 ronin | 发表于 2005-11-12 14:13 |
| 中级用户 发帖 111 积分 421 | |
|
我做了批处理,用netsh不行
|
|
| 第10楼 willsort | 发表于 2005-11-12 19:14 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
Re ronin:
在XP中,可以在批处理中使用 netsh 配置几乎所有的网络信息。样例如下: netsh interface ip set address "本地连接" static 10.0.0.5 255.255.255.0 10.0.0.4 1 netsh interface ip set dns "本地连接" static 10.0.0.4 而产生随机IP可以使用set/a对随机变量%random%进行运算得到。 set rndip=%random% set /a rndip=rndip%156+100 |
|
| 第11楼 ronin | 发表于 2005-11-12 21:22 |
| 中级用户 发帖 111 积分 421 | |
|
谢谢willsort、无奈何、JonePeng帮助,已经弄好了,用下边的批处理完全没有问题
set x=%random:~-1% set x1=%random:~-1% netsh interface ip set address "本地连接" static 192.168.1.1%x%%x1% 255.255.255.0 192.168.1.1 1 |
|
| 第12楼 ronin | 发表于 2005-11-14 10:38 |
| 中级用户 发帖 111 积分 421 | |
|
关于XP检测本地连接问题 接上次的问题
netsh interface ip set address "本地连接" static 192.168.1.1%x%%x1% 255.255.255.0 192.168.1.1 1 使用中发现,因为更换网卡或者其它问题,很多电脑都不是用“本地连接”,很多是用“本地连接 3”这样的,这个批处理就会出错,能不能使用批处理检测到本地连接用哪一个,或者就是直接用LOCAL替换? |
|
| 第13楼 unique009 | 发表于 2005-11-14 11:17 |
| 初级用户 发帖 8 积分 28 | |
|
这个问题我也挺想知道
|
|
| 第14楼 willsort | 发表于 2005-11-14 17:51 |
| 元老会员 发帖 1,512 积分 4,432 | |
|
—————————————— Edited by willsort —————————————— 合并主题:《17732 - 关于XP检测本地连接问题》 合并理由:二主题存在上下文的直接联系 删除回帖: voiL 和 ronin 的三篇回帖 删除理由:回帖内容为问答两主题之间关系 两位可以在以下的回帖中要求积分补偿 —————————————— Edited by willsort —————————————— Re ronin: 关于获取连接名字,也可以使用 netsh ,目前我所找到的途径是: netsh interface dump 用 for + set + if 可以得到并判断出其中存在的连接名。以下给出批处理中的代码示例,将得到结果存入环境变量 addressname 中,应该不太周全,建议先详细测试再实际应用。 for /f "tokens=1,2,3" %%a in ('netsh interface dump') do if "%%b"=="address" echo %%a %%b%%c [ Last edited by willsort on 2005-11-14 at 20:32 ] |
|
| 第15楼 chenhui530 | 发表于 2005-11-15 14:08 |
| 高级用户 发帖 273 积分 772 | |
|
获取连接名字:
for /f "skip=3 tokens=1,2,3 delims=: " %%a in ('ipconfig') do for %%A in (%%c) do set a=%%A && goto view :view echo %a% pause |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |