标题: [网络连接] [已解决]bat代码,curl命令,获取外网ip。部分电脑无法获取并显示,什么原因? [打印本页]
作者: ygqiang 时间: 2025-1-14 09:56 标题: [已解决]bat代码,curl命令,获取外网ip。部分电脑无法获取并显示,什么原因?
本帖最后由 ygqiang 于 2025-1-15 08:45 编辑
解决了,发现部分电脑,外网ip不是无法获取,是获取比较慢。- @echo off
-
- @echo ════════════════════════════════════
- for /f "delims=: tokens=2" %%i in ('ipconfig^|findstr "IPv4 地址"') do echo 内网IP为:%%i
- for /f "delims=: tokens=2" %%m in ('ipconfig -all^|findstr "物理地址"') do echo 网卡地址:%%m
- @echo ════════════════════════════════════
- for /f "delims=: tokens=2" %%o in ('curl -s cip.cc^|findstr "IP"') do set ip=%%o&echo 外网IP为:%%o
- for /f "delims=: tokens=2" %%l in ('curl -s ipinfo.io^|findstr ""region""') do set ad=%%l&echo 所在地区:%%l
- @echo 外网IP为:%ip% >nul 2>null
- @echo 所在地为:%ad% >nul 2>null
- @echo ════════════════════════════════════
- del /q null >nul 2>nul
- ping 0 -n 10 >nul 2>nul
- del /q null >nul 2>nul
-
- exit
复制代码
作者: jiavip 时间: 2025-1-14 12:00
回复 1# ygqiang
有的电脑可行有的却不行,无非是系统版本不同或命令程序缺失,导致命令无法执行,
查错的思路很简单,
1,先在电脑上执行一下那命令,curl -s cip.cc
2,打开cmd把批处理拖进CMD里运行,会看到基础的报错信息!
3,去掉批处理的@echo off 和 >nul ,在有可能出错的地方加上pause暂停观察
学会查错和分析,比什么都有用!
作者: ygqiang 时间: 2025-1-14 12:08
回复 ygqiang
有的电脑可行有的却不行,无非是系统版本不同或命令程序缺失,导致命令无法执行, ...
jiavip 发表于 2025-1-14 12:00
已经确定,不同系统下面,都有这个命令。
作者: jiavip 时间: 2025-1-14 12:23
本帖最后由 jiavip 于 2025-1-14 12:26 编辑
回复 3# ygqiang
涉及到网络和不同电脑的命令,得出不一样的运行效果,一是查看原始命令的执行效果,有的系统版本不同,相同的命令,回显的方式会有些出入,影响读取!
二是查看是否有变量冲突,和运行权限。
三是看网络状态,,,
作者: Batcher 时间: 2025-1-14 13:51
回复 1# ygqiang
找一台“不行”的电脑
双击文件 C:\Windows\System32\cmd.exe
在打开的CMD窗口中依次执行以下命令:
curl -s cip.cc > 1.txt
回车
把生成的1.txt文件上传到网盘
作者: ygqiang 时间: 2025-1-14 15:39
回复 5# Batcher
命令提示符下,运行后生成的1.txt,无内容。
如果运行curl,则会提示:curl:try ’curl --help‘ for more information
作者: Batcher 时间: 2025-1-14 18:00
回复 6# ygqiang
根据提示执行 curl --help 看看结果
作者: jiavip 时间: 2025-1-14 18:04
回复 6# ygqiang
你那是命令没执行成功的提示!
----
那批处理的问题,,,
有一种错误是 DNS 解析不到那域名!
再有一种是批处理的空格出错 有的系统设置它支持 完整命令,有的是系统优化过了,不支持整条命令要用引号和空格区分
for /f "delims=: tokens=2" %%o in ('curl -s cip.cc^|findstr "IP"') do set ip=%%o&echo 外网IP为:%%o
改为,,,- for /f "delims=: tokens=2" %%o in ('"curl -s cip.cc ^ | findstr "IP""') do set ip=%%o&echo 外网IP为:%%o
复制代码
试试,,
curl -s cip.cc ^ | findstr "IP"
有的系统优化过了,不留空格在批处理里它就执行不了,,,
作者: 77七 时间: 2025-1-14 18:56
- @echo off
- chcp 65001 >nul
- curl "cip.cc" |find /i "ip"
- curl "ifconfig.me" |find /v ""
- pause
复制代码
作者: ygqiang 时间: 2025-1-14 20:23
本帖最后由 ygqiang 于 2025-1-14 21:48 编辑
回复 9# 77七
正常win10系统,运行代码以后,生成的1.txt与2.txt文件内容如下:
IP : 115.161.156.220
URL : http://www.cip.cc/115.161.156.220
2408:8215:f19:f561:50bb:5684:35b6:2853- @echo off
- chcp 65001 >nul
- curl "cip.cc" |find /i "ip" >1.txt
- curl "ifconfig.me" |find /v "" >2.txt
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |