Board logo

标题: [文本处理] 求助批处理定时检测外网IP改变后重启指定程序? [打印本页]

作者: tvbs    时间: 2009-3-25 11:44     标题: 求助批处理定时检测外网IP改变后重启指定程序?

我要的批处理效果是:
1、每隔2分钟检测一下外网IP,当它发生改变时(可以在本电脑上设一个外网IP的文本,当它与外网IP不符时)就执行动作!
2、动作是:关闭已经运行的十个程序,再打运行这十个程序,再关闭,再打运行,再把上面说的外网IP文本的旧外网IP改成新的外网IP,再执行每隔2分钟的IP检测。就这样循环!

当时如果不用批处理能达到这样效果的也可以。希望高手帮帮忙!!!

也可以联系我的QQ:43143520
作者: namejm    时间: 2009-3-25 12:07

  这里有几个问题需要解决:
  1、纯批处理获取外网的能力很弱,并且不可靠,需要借助其他方法,比如第三方命令行程序、比如VBS;
  2、每隔2分钟检测一次,如果用纯批处理中的ping方案来做的话,会十分耗费系统资源,有可能导致CPU飙升至100%;如果使用系统的计划任务来做,at的时间间隔是以小时计算,而XP上的schtasks时间间隔可以以分钟来计算;不过这两个命令都需要开启计划任务服务,并且schatasks需要以管理员权限运行,通用性折扣大为降低;可以考虑使用VBS或第三方命令行如sleep.exe来做延时;
  3、关闭程序可以通过taskkill命令以关闭进程的方式来实现;
  4、改变外网IP?貌似只能在路由器或服务器上设置,本机是无法改变的吧?
作者: tvbs    时间: 2009-3-25 12:40

再求助。
1、可以改为20分钟检测一次IP,IP可以在这里得到
Getip.vbs echo Set oDOM=WScript.GetObject("http://www.ip138.com/ip2city.asp")
2、最主要的是检测到http://www.ip138.com/ip2city.asp 得到的IP与在本机D盘的ip.txt里面的IP不一致时,就执行taskkill命令,还有运行的,但都要有延时,最好是五秒。
3、因为IP是电信给的,和路由器没关系。我说的是当电信给的IP改变时,就帮我检测它是不是改变了,如果改了就执行动作。不是我要改变IP。
####主要帮我写个能运行动作的工具,比如:IF http://www.ip138.com/ip2city.asp 的IP不等于 d:\ip.txt 里的IP时,就运行 D:\IP.bat    当然IP.bat是运行和关闭程序的。顺便告诉怎么延时taskkill 程序。就是隔五秒关一个。我有十个程序要关。
可以的话,最好帮我写出来,加以说明,不胜感谢啊!!!
作者: Batcher    时间: 2009-3-25 12:49     标题: 回复 3楼 的帖子

参考:批处理中的延时
http://bbs.bathome.net/viewthread.php?tid=233
http://bbs.bathome.net/viewthread.php?tid=3693#pid23312

Q: 如何使用论坛搜索功能来解决自己的问题?
A: 参考:http://bbs.bathome.net/thread-3473-1-1.html




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2