[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理如何获取本机公网ip/外网ip?

本帖最后由 pcl_test 于 2016-9-5 03:44 编辑

如题,在网吧的话,可以打开ip138.com查看网吧使用的公有地址,用批处理怎么做到呢?还有如果是家里的adsl宽带又怎么做呢?

本帖最后由 pcl_test 于 2016-9-4 19:51 编辑
  1. @echo off
  2. more /e +10 %0 >"%temp%\down.vbs"
  3. wscript //b "%temp%\down.vbs" "http://1212.ip138.com/ic.asp" "%temp%\ip.txt"
  4. if not "%errorlevel%"=="99" (echo error)
  5. FOR /F "usebackq tokens=2 delims=[]" %%i in ("%temp%\ip.txt") do set ip=%%i
  6. if "%ip%"=="" (set "ip=ip138.com源码已变更。")
  7. for /f "usebackq tokens=2 delims=]" %%a in ("%temp%\ip.txt") do (for /f "delims=<" %%b in ("%%a") do set "ad=%%b")
  8. echo %ad% %ip%
  9. pause&exit
  10. With CreateObject("msxml2.Serverxmlhttp")
  11.     .open "get",WScript.Arguments.Item(0),False
  12.     .send
  13.     temp = .responseBody
  14. End With
  15. With CreateObject("adodb.stream")
  16.     .Type = 1:.Mode = 3
  17.     .Open()
  18.     .Write(temp)
  19.     .SaveToFile WScript.Arguments.Item(1),2
  20.     .Close
  21. End With
  22. Wscript.Quit (99)
复制代码

TOP

回复 2# 522235677


    没有结果啊,只有ip138.com源码已变更

TOP

本帖最后由 pcl_test 于 2016-9-4 19:52 编辑
522235677 发表于 2013-4-9 14:40



照搬代码,试试。
  1. @echo off
  2. more /e +10 %0 >"%temp%\down.vbs"
  3. wscript //b "%temp%\down.vbs" "http://1212.ip138.com/ic.asp" "%temp%\ip.txt"
  4. FOR /F "usebackq tokens=2 delims=[]" %%i in ("%temp%\ip.txt") do set ip=%%i
  5. if "%ip%"=="" (set "ip=ip138.com源码已变更。")
  6. for /f "usebackq tokens=2 delims=]" %%a in ("%temp%\ip.txt") do (for /f "delims=<" %%b in ("%%a") do set "ad=%%b")
  7. echo %ad%   IP:%ip%
  8. pause&exit
  9. Call DownloadFile(WScript.Arguments.Item(0), WScript.Arguments.Item(1))
  10. Function DownloadFile(URL,SavePath)
  11. On Error Resume Next
  12. Dim fso, xPost
  13. Set fso= Wscript.Createobject("Scripting.FileSystemObject")
  14. Set xPost = createObject("Microsoft.XMLHTTP")  
  15. xPost.Open "GET",URL,0 ''''下载文件的地址  
  16. xPost.Send()  
  17. Set sGet = CreateObject("ADODB.Stream")  
  18. sGet.Mode = 3  
  19. sGet.Type = 1  
  20. sGet.Open()  
  21. sGet.Write(xPost.responseBody)  
  22. sGet.SaveToFile SavePath,2 ''''保存文件的路径和文件名
  23. if (fso.FileExists(SavePath)) Then                     '检测文件是否存在
  24. DownloadFile = True
  25. else
  26. DownloadFile = False
  27. end if
  28. set fso=Nothing
  29. End Function
复制代码
简体XP 32位执行结果如下:
  1. 来自:广东省东莞市 电信   IP:183.22.169.214
  2. 请按任意键继续. . .
复制代码
『千江有水千江月』千江有水,月映千江;万里无云,万里青天。    http://yu2n.qiniudn.com/

TOP

http://www.ip138.com/ips1388.asp
138查询地址变更为这个

TOP

本帖最后由 pcl_test 于 2016-9-4 20:04 编辑

本机外网
  1. @echo off
  2. <"%~f0" more +3 >Getip.vbs
  3. cscript //nologo Getip.vbs&del Getip.vbs&pause&exit
  4. Set oDOM=WScript.GetObject("http://1212.ip138.com/ic.asp")
  5. Do Until oDOM.readyState="complete"
  6. WScript.sleep 100
  7. Loop
  8. WScript.echo oDOM.documentElement.outerText
复制代码
查询版的
  1. @echo off
  2. set/p uip=请输入要查询的IP:
  3. IF "%uip%" equ "" (set dip=getip)else set "dip=queryip"
  4. (echo Set oDOM=WScript.GetObject("http://www.ip.cn/getip.php?action=%dip%&ip_url=%uip%"^)
  5. echo Do Until oDOM.readyState="complete"
  6. echo WScript.sleep 100
  7. echo Loop
  8. echo WScript.echo oDOM.documentElement.outerText)>Getip.vbs
  9. for /f "delims=" %%i in ('cscript //nologo Getip.vbs') do echo %%i&del Getip.vbs&pause&exit
复制代码

TOP

回复 6# terse


    十分感谢

TOP

本帖最后由 pcl_test 于 2016-9-4 20:49 编辑

6楼查询网址已失效,更新下
  1. @echo off
  2. set/p ip=请输入要查询的IP并按回车键(直接按回车键为查询本机公网IP):
  3. if "%ip%" neq "" set "str=?ip=%ip%"
  4. (
  5.     echo;Set ie=CreateObject("InternetExplorer.Application"^)
  6.     echo;ie.Visible=false
  7.     echo;ie.navigate "http://www.ip.cn/index.php%str%"
  8.     echo;Do
  9.     echo;WSH.Sleep 500
  10.     echo;Loop Until ie.readyState=4
  11.     echo;WSH.echo replace(ie.Document.getElementByID("result"^).innertext,vbCrLf," "^)
  12.     echo;ie.quit
  13. )>"%temp%\Getip.vbs"
  14. for /f "delims=" %%i in ('cscript //nologo "%temp%\Getip.vbs"') do echo;%%i&del "%temp%\Getip.vbs"&pause&exit
复制代码

TOP

返回列表