中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教,批处理实现ADSL上网IP不重复?
作者:
标题: 请教,批处理实现ADSL上网IP不重复? 上一主题 | 下一主题
iconspy
新手上路





积分 10
发帖 4
注册 2007-4-18
来自 重庆
状态 离线
『楼 主』:  请教,批处理实现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,所以用了这种办法!

2007-4-18 06:35
查看资料  发送邮件  发短消息 网志  OICQ (56735928)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  

楼主,你真伟大

2007-4-18 09:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
iconspy
新手上路





积分 10
发帖 4
注册 2007-4-18
来自 重庆
状态 离线
『第 3 楼』:  怎么没人理我呀!

怎么没人理我呀?是不是我放错了版面?请管理员指正!
如果批处理不好实现,用脚本也可以呀,请大家帮帮忙!:(

2007-4-19 03:52
查看资料  发送邮件  发短消息 网志  OICQ (56735928)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  

你用断线重连的方法想获得上次相同IP太困难了点,这取决于ISP的POOL大小与在线人数,是否有序列策略,像广州,最大的IP池有大于5K个,这样很难

2007-4-19 09:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
iconspy
新手上路





积分 10
发帖 4
注册 2007-4-18
来自 重庆
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by everest79 at 2007-4-18 08:56 PM:
你用断线重连的方法想获得上次相同IP太困难了点,这取决于ISP的POOL大小与在线人数,是否有序列策略,像广州,最大的IP池有大于5K个,这样很难

Sorry,可能是我没说明白,我不是想获得相同的IP,恰恰相反我是想让我的IP每次都不一样,因为我这里是重庆的一个区,IP在一个固定断内,用我写的那个批处理常常会有IP重复的情况,所以我想是否有朋友有办法能解决这个问题.我将十分感谢!

     我不知道find 或者 findstr 两:(个命令是否有返回值,如果知道它们的返回值那这个批处理写起来就不难了,不知道有哪位朋友知道它们的返回值吗?:(

2007-4-19 11:08
查看资料  发送邮件  发短消息 网志  OICQ (56735928)  编辑帖子  回复  引用回复
iconspy
新手上路





积分 10
发帖 4
注册 2007-4-18
来自 重庆
状态 离线
『第 6 楼』:  谢谢大家的关心,问题已经解决!

谢谢大家的关心,问题已经通过朋友的代码解决!

为了有相同需要的朋友方便,我将代码贴出来,希望能给有类似需要的朋友一点帮助!
@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%)

2007-4-20 01:41
查看资料  发送邮件  发短消息 网志  OICQ (56735928)  编辑帖子  回复  引用回复

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


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



论坛跳转: