![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 05:41 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请教,批处理实现ADSL上网IP不重复? |
| 可打印版本 1,637 / 5 |
| 第1楼 iconspy | 发表于 2007-04-18 06:35 |
| 新手上路 发帖 4 积分 10 来自 重庆 | |
|
请教,批处理实现ADSL上网IP不重复? 请教,关于用批处理实现用ADSL上网使自身IP不重复的问题? 关于用批处理实现用ADSL上网使自身IP不重复的问题?
想实现这样功能的批处理,运行批处理时 将当前IP写入到记录IP地址的文本文件中, 然后断开ADSL连接,经过一段延时后重新连接ADSL, 然后对比连接好后的IP是否是以前用这的IP,即查找当前IP是否在记录IP地址的文本文件中 如果是用过的IP则重复上述操作,重新拨号 现在我的批处理如下(没能实现对比功能): @echo off echo 正在断开连接...... rasdial adsl /disconnect echo 正在清理系统垃圾文件,请稍等...... del /f /s /q %systemdrive%\*.tmp del /f /s /q %systemdrive%\*._mp del /f /s /q %systemdrive%\*.log del /f /s /q %systemdrive%\*.gid del /f /s /q %systemdrive%\*.chk del /f /s /q %systemdrive%\*.old del /f /s /q %systemdrive%\recycled\*.* del /f /s /q %windir%\*.bak del /f /s /q %windir%\prefetch\*.* rd /s /q %windir%\temp & md %windir%\temp del /f /q C:\documents and Settings\Administrator\Cookies\*.* del /f /q C:\documents and Settings\Administrator\Cookies\*.* del /f /q C:\documents and Settings\Administrator\Cookies\*.* del /f /s /q "C:\documents and Settings\Administrator\Temporary Internet Files\*.*" del /f /s /q "R:\Temporary Internet Files\*.*" del /f /s /q "C:\documents and Settings\Administrator\Local Settings\Temporary Internet Files\*.*" del /f /s /q "C:\documents and Settings\Administrator\Local Settings\Temp\*.*" del /f /s /q "C:\documents and Settings\Administrator\recent\*.*" echo 清理系统垃圾完成! echo. & pause echo 正在连接网络...... rasdial adsl adslxxxxxx password ipconfig|findstr /c:"IP Address" >>IPList.txt Rasdial "adsl adslxxxxxx" /DISCONNECT>nul Rasdial "adsl adslxxxxxx" adslxxxxxx password>nul ipconfig|findstr /c:"IP Address" echo. & pause 向请各位高手请教! ipconfig|findstr /c:"IP Address" >>IPList.txt输入到文本文件中后,目前内容是这样的: IP Address. . . . . . . . . . . . : 192.168.1.111 IP Address. . . . . . . . . . . . : 219.152.91.135 IP Address. . . . . . . . . . . . : 192.168.1.111 IP Address. . . . . . . . . . . . : 219.152.88.109 IP Address. . . . . . . . . . . . : 192.168.1.111 内容是两个IP地址,因为系统中有两个连接,一个本地连接,一个ADSL连接 与运行ipconfig看到的两个连接的信息是一样的,我不知道用批处理怎样只取得adsl连接的IP,即外网IP,所以用了这种办法! |
|
| 第2楼 everest79 | 发表于 2007-04-18 09:34 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
楼主,你真伟大
|
|
| 第3楼 iconspy | 发表于 2007-04-19 03:52 |
| 新手上路 发帖 4 积分 10 来自 重庆 | |
|
怎么没人理我呀! 怎么没人理我呀?是不是我放错了版面?请管理员指正!
如果批处理不好实现,用脚本也可以呀,请大家帮帮忙!:( |
|
| 第4楼 everest79 | 发表于 2007-04-19 09:56 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
你用断线重连的方法想获得上次相同IP太困难了点,这取决于ISP的POOL大小与在线人数,是否有序列策略,像广州,最大的IP池有大于5K个,这样很难
|
|
| 第5楼 iconspy | 发表于 2007-04-19 11:08 |
| 新手上路 发帖 4 积分 10 来自 重庆 | |
Originally posted by everest79 at 2007-4-18 08:56 PM: Sorry,可能是我没说明白,我不是想获得相同的IP,恰恰相反我是想让我的IP每次都不一样,因为我这里是重庆的一个区,IP在一个固定断内,用我写的那个批处理常常会有IP重复的情况,所以我想是否有朋友有办法能解决这个问题.我将十分感谢! 我不知道find 或者 findstr 两:(个命令是否有返回值,如果知道它们的返回值那这个批处理写起来就不难了,不知道有哪位朋友知道它们的返回值吗?:( |
|
| 第6楼 iconspy | 发表于 2007-04-20 01:41 |
| 新手上路 发帖 4 积分 10 来自 重庆 | |
|
谢谢大家的关心,问题已经解决! 谢谢大家的关心,问题已经通过朋友的代码解决!
为了有相同需要的朋友方便,我将代码贴出来,希望能给有类似需要的朋友一点帮助! @echo off&setlocal if not exist IPList.txt (>IPList.txt echo.) rasdial adsl adslxxxxxx password >nul for /f "skip=2 tokens=2 delims=:" %%a in ('ipconfig/all^|findstr /c:"PPP adapter adsl" /c:"IP Address"') do ( set a=%%a ) set a=%a: =% findstr /r "^%a%$" IPList.txt&&(rasdial adsl /disconnect>nul)||(>>IPList.txt echo %a%) |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |