找回密码
 立即注册
搜索
查看: 1698|回复: 1

VBS代碼求指教

[复制链接]
发表于 2009-3-21 08:45 | 显示全部楼层 |阅读模式
昨晚写了一个自动拨指定公网IP号段的脚本,但是获取的公网IP地址不变(总是显示第一次获取的IP),实际上从www.ip138.com上看IP的确是变化的,求指教

dial.bat@echo off
start dial.vbs
echo 【自动拨号程序】
echo.
echo 【按任意键退出】
pause>nul
@taskkill /f /IM wscript.exe
exitdial.vbsSet objShell=WScript.CreateObject(\"WScript.Shell\")
sCmd=\"cmd.exe /c rasphone -h qdtv\"   '挂断拨号
objShell.Run sCmd,0,1
sCmd=\"cmd.exe /c rasphone -d qdtv\"   '拨号
objShell.appactivate \"C:\WINDOWS\system32\cmd.exe\"
objShell.Run sCmd,0,1
Set oDOM=WScript.GetObject(\"http://www.ip138.com/ip2city.asp\")    '从ip138.com获取公网IP
Do Until oDOM.readyState=\"complete\"
WScript.sleep 200
Loop
str = Split(oDOM.documentElement.outerText,\"[\")
Set oDOM=nothing
ip = Split(str(1),\"]\")
while left(ip(0),1)<>\"6\"   '判断IP段
Set objShell=WScript.CreateObject(\"WScript.Shell\")
sCmd=\"cmd.exe /c rasphone -h qdtv\"
objShell.Run sCmd,0,1
'WScript.sleep 200
sCmd=\"cmd.exe /c rasphone -d qdtv\"
objShell.Run sCmd,0,1
objShell.appactivate \"C:\WINDOWS\system32\cmd.exe\"
'WScript.sleep 3000
Set oDOM=WScript.GetObject(\"http://www.ip138.com/ip2city.asp\")   '此处获得的公网IP与之前的相同(即使是延时3秒再获取也),无论循环多少次都是一样,但实际上访问ip138.com发现IP地址是变化的
Do Until oDOM.readyState=\"complete\"
WScript.sleep 200
Loop
str = Split(oDOM.documentElement.outerText,\"[\")
Set oDOM=nothing
ip = Split(str(1),\"]\")
wend
'WScript.echo left(ip(0),2)
Set objShell=nothing
回复

使用道具 举报

发表于 2009-3-21 15:27 | 显示全部楼层
搞错了.,编辑掉.

原来是do until, VBS果然不熟.

http://www.ip138.com/ip2city.asp后面加个timestamp行不行?会不会是缓存的问题?

[ 本帖最后由 normanzb 于 2009-3-21 15:32 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-20 13:57 , Processed in 0.048742 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表