标题: VBS获取外网IP [打印本页]
作者: BatHome 时间: 2008-1-8 23:11 标题: VBS获取外网IP
- '/*程序名称:获取外网IP
- '/*说明:核心代码源自网络,youxi01整理修改;
- set oDOM = WScript.GetObject("http://ipseeker.cn//")
-
- '/*/////////设置连接是否成功的标志符;/////////
- flag=0
-
- '/*////////设置连接次数;///////////
- for i=1 to 10
- '/*///////////如果已经成功连接,则跳出for循环;////////
- if oDOM.readyState = "complete" then
- flag=1
- exit for
- end if
- WScript.sleep 500 '每0.5秒就连接一次;
- next
-
- if flag=0 then
- msgbox "连接超时,请重新连接...",vbExclamation,"连接超时"
- wscript.quit
- end if
-
- '/*///////////保存返回结果////////////
- s=oDOM.documentElement.innerText
-
- '/*///////////正则表达式///////////
- Set Re = New RegExp
- '/*//////数据匹配:数字.数字.数字.数字
- Re.Pattern="(\d+)\.(\d+)\.(\d+)\.(\d+)"
- for each r in Re.Execute(s)
- res=r
- exit for
- Next
-
- msgbox "您的IP地址是:"&vbcrlf&vbcrlf&res,vbInformation,"连接成功"
复制代码
作者: breakan 时间: 2008-4-21 11:38
不错!!!!!!!!!!!!!!
作者: kx25 时间: 2008-7-25 18:35
在我的电脑上(电信网络),不是连接超时就是返回的IP是空的,仅显示“您的IP地址是:”
作者: yu2n 时间: 2014-12-11 17:41
本帖最后由 pcl_test 于 2017-6-15 19:23 编辑
- ' GetWanIP.vbs
- If Ping("www.ip138.com") Then
- Msgbox "你的外网IP是:" & HttpGet("http://1212.ip138.com/ic.asp")
- Else
- Msgbox "你的电脑没有连通外网。"
- End If
-
- Function HttpGet(ByVal url)
- On Error Resume Next
- With CreateObject("Msxml2.ServerXMLHTTP")
- .open "GET", url, False
- .send
- HttpGet = split(split(.responseText, "[")(1), "]")(0)
- End With
- End Function
-
- Function Ping(ByVal host)
- On Error Resume Next
- Ping = False
- Dim objWMIService, colItems
- Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
- Set colItems = objWMIService.ExecQuery("Select * From Win32_PingStatus Where Address='" & host & "'")
- For Each objItem In colItems
- If objItem.StatusCode = 0 Then Ping = True : Exit For
- Next
- End Function
复制代码
作者: CrLf 时间: 2014-12-11 22:14
回复 4# yu2n
这个网址也挺干净:
http://city.ip138.com/ip2city.asp
之前还有一个更干净的,可惜失效了
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |