找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33419|回复: 7

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

[复制链接]
发表于 2013-4-9 12:50:12 | 显示全部楼层 |阅读模式
本帖最后由 pcl_test 于 2016-9-5 03:44 编辑

如题,在网吧的话,可以打开ip138.com查看网吧使用的公有地址,用批处理怎么做到呢?还有如果是家里的adsl宽带又怎么做呢?
发表于 2013-4-9 14:40:08 | 显示全部楼层
本帖最后由 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)
复制代码
 楼主| 发表于 2013-4-9 15:44:55 | 显示全部楼层
回复 2# 522235677


    没有结果啊,只有ip138.com源码已变更
发表于 2013-4-9 16:50:54 | 显示全部楼层
本帖最后由 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. 请按任意键继续. . .
复制代码
发表于 2013-4-9 16:54:35 | 显示全部楼层
http://www.ip138.com/ips1388.asp
138查询地址变更为这个
发表于 2013-4-9 17:09:20 | 显示全部楼层
本帖最后由 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
复制代码
 楼主| 发表于 2013-4-28 11:37:18 | 显示全部楼层
回复 6# terse


    十分感谢
发表于 2016-9-4 20:48:17 | 显示全部楼层
本帖最后由 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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 05:57 , Processed in 0.039348 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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