Board logo

标题: [问题求助] VBS如何获取外网IP/公网IP? [打印本页]

作者: alpha    时间: 2010-11-30 21:53     标题: VBS如何获取外网IP/公网IP?

本帖最后由 pcl_test 于 2016-9-6 00:18 编辑

要实现的功能:运行vbs后,检测外网IP,然后用msgbox提示:“您的外网IP为:***.***.***.***”,然后将IP地址复制到粘帖版中!

[ 本帖最后由 alpha 于 2010-12-20 23:51 编辑 ]
作者: alpha    时间: 2010-12-1 21:19

没人知道么?????
作者: Batcher    时间: 2010-12-1 22:32

你是不会获取外网IP?还是不会复制到粘贴板?
作者: alpha    时间: 2010-12-2 21:30

本帖最后由 pcl_test 于 2017-6-21 21:31 编辑
  1. @echo off
  2. (echo Set oDOM=WScript.GetObject("http://ip.chinaz.com/getip.aspx"^)
  3. echo Do Until oDOM.readyState="complete"
  4. echo WScript.sleep 10
  5. echo Loop
  6. echo WScript.echo split(oDOM.documentElement.outerText,"'"^)(1^))>Getip.vbs
  7. for /f "delims=" %%i in ('cscript //nologo Getip.vbs') do echo,您的外网IP为:%%i&del Getip.vbs&pause&exit
复制代码
这是我目前的bat代码,如何只将IP地址复制到粘帖版中?并且msgbox提示。(最好能够简化一下代码)
作者: Batcher    时间: 2010-12-3 00:02

批处理、VBS剪贴板操作专题
http://bbs.bathome.net/thread-8329-1-1.html
作者: alpha    时间: 2010-12-20 23:50

本帖最后由 pcl_test 于 2017-6-21 21:14 编辑

这是我目前的vbs脚本:
  1. Set oDOM=WScript.GetObject("http://1212.ip138.com/ic.asp")
  2. Do Until oDOM.readyState="complete"
  3. WScript.sleep 200
  4. Loop
  5. str = Split(oDOM.documentElement.outerText,"[")
  6. Set oDOM=nothing
  7. ip = Split(str(1),"]")
  8. Set objIE = CreateObject("InternetExplorer.Application")
  9. objIE.Navigate("about:blank")
  10. objIE.document.parentwindow.clipboardData.SetData "text", ip(0)
  11. msgbox "IP: [" & ip(0) & "] 已经复制到剪贴板!",64,"OK!"
复制代码
请问如何关闭上述代码中打开IE的功能?
作者: alpha    时间: 2010-12-22 21:02

没人知道么?顶起来!
作者: powerbat    时间: 2010-12-23 23:45

5楼帖子中的链接不是给了很多方法吗?
  1. ip="127.0.0.1"
  2. Set ws = CreateObject("WScript.Shell")
  3. ws.run "mshta ""javascript:clipboardData.setData('text', '" & ip & "');close();""", 0, true
复制代码

作者: pcl_test    时间: 2016-9-6 00:17

本帖最后由 pcl_test 于 2017-6-15 19:39 编辑
  1. Set ie=CreateObject("InternetExplorer.Application")
  2. ie.Visible=false
  3. ie.navigate "http://ip.cn/"
  4. Do
  5. WSH.Sleep 500
  6. Loop Until ie.readyState=4
  7. str = replace(ie.Document.getElementByID("result").innertext,vbCrLf," ")
  8. Set reg = New RegExp
  9. reg.Pattern = "(\d+\.){3}\d+"
  10. ip = reg.Execute(str)(0)
  11. CreateObject("wscript.Shell").run "mshta vbscript:ClipBoardData.setData(""Text"","""&ip&""")(window.close)", 0, true
  12. WSH.echo "IP: [" & ip & "] 已复制到剪贴板!"
  13. ie.quit
复制代码





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