无忧启动论坛

标题: 外网地址获取后设置为变量 [打印本页]

作者: freesoft00    时间: 2025-7-12 15:08
标题: 外网地址获取后设置为变量
本帖最后由 freesoft00 于 2025-7-12 16:42 编辑

电脑是拨号上网,每次地址都不同
想获取外网地址,网上搜索可以使用curl,命令如下
curl ipinfo.io/ip
现在想把获取到的地址设置为一个变量,替换掉127.0.0.1
应该如何写

curl ipinfo.io/ip
set ip_add=
reg add "HKLM\SOFTWARE\Wow6432Node\test" /f /v "ServerName" /t REG_SZ /d "127.0.0.1"

============================================
在坛友的提点下已经可以了,下面是完整的示例代码分享出来
  1. @echo off
  2. rem 地址
  3. for /f "tokens=* delims=" %%i in  ('curl -s ifconfig.me') do set "ip_add=%%i"
  4. echo %ip_add%
  5. >ipadd.txt echo echo off
  6. >>ipadd.txt echo rem 地址
  7. >>ipadd.txt echo reg add "HKLM\SOFTWARE\Wow6432Node\test" /f /v "ServerName" /t REG_SZ /d "%ip_add%,3389"
  8. >>ipadd.txt echo reg add "HKLM\SOFTWARE\test" /f /v "ServerName" /t REG_SZ /d "%ip_add%,3389"
  9. pause
复制代码




作者: szwp    时间: 2025-7-12 15:19
手机不方便写,打for /?试试,也可用set从文件里取
作者: 20121010168    时间: 2025-7-12 15:32
我现用解决方案是52pojie的一个python脚本与zTasker配合,检测到IP变动,就自动发送IP地址到邮箱。
然后就发现我这边电信IPv6地址更换间隔太过频繁,只好继续用v4 .
作者: phwike    时间: 2025-7-12 15:54
学习学习
作者: freesoft00    时间: 2025-7-12 16:07
szwp 发表于 2025-7-12 15:19
手机不方便写,打for /?试试,也可用set从文件里取

知道了
作者: freesoft00    时间: 2025-7-12 16:09
本帖最后由 freesoft00 于 2025-7-12 16:34 编辑

有个问题。
curl ipinfo.io/ip
在cmd中单独执行的时候直接显示ip,但是放入批处理中,有时候会出现无用信息,比如下面
上面的信息是不需要的只有最下面的才是ip

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    13  100    13    0     0     18      0 --:--:-- --:--:-- --:--:--    18
136.97.111.252





==============================
测试加上-s参数就可以了,静默模式
curl -s ifconfig.me

作者: freesoft00    时间: 2025-7-12 16:13
其它的命令也可以,不是非得用curl,网上说wget也可以。不知道aria2可以不。反正怎么也得用第三方,因为是2012r2服务器,也不带curl,curl只有win10带有

获取ip的网址下面的也可以
curl ifconfig.me
curl icanhazip.com
作者: freesoft00    时间: 2025-7-12 16:20
20121010168 发表于 2025-7-12 15:32
我现用解决方案是52pojie的一个python脚本与zTasker配合,检测到IP变动,就自动发送IP地址到邮箱。
然后就 ...

zTasker有时间限制,到时间强制升级,旧版无法使用。感觉不太爽,也就不再关注了。
看着功能是不错

我是要获取拨号的公网ip然后通过威力同步分发给其它电脑,然后其它电脑定时执行然后改变连接服务器的ip
否则一拨号其它的电脑就连接不上服务器了。
原来用的是tplink的ddns,它6月30号不是停止服务了吗,所以想到用这个不算太好的解决方法解决一下吧。
总比每次手动改方便一些

tplink的路由器还支持花生壳,前几天还发帖问了看花生壳收费不收,不收费注册一个就省的麻烦了。
好像是还可以免费用,也没有注册,想用这个威力同步的方案顶段时间再说吧

批处理定时检测外网地址,生成批处理到相应文件夹,威力同步同步到其它电脑,然后这些电脑定时运行目录中的批处理改连接服务器的地址,这个就是总体流程
作者: szwp    时间: 2025-7-12 16:24
curl加参数可少显示
作者: szwp    时间: 2025-7-12 16:25
2012没精简的话,可原生解决
作者: freesoft00    时间: 2025-7-12 16:34
szwp 发表于 2025-7-12 16:24
curl加参数可少显示

-s参数
作者: szwp    时间: 2025-7-12 16:45
不加也不影响获取
作者: junyee    时间: 2025-7-12 16:45
curl 和  wget 都有 windows 版本。
作者: handsome_xiang    时间: 2025-7-12 16:48
感谢分享!
作者: szwp    时间: 2025-7-12 17:55
freesoft00 发表于 2025-7-12 16:34
-s参数

不加试试,俺是加入拨号事件运行更新动态域名的
作者: freesoft00    时间: 2025-7-12 18:01
szwp 发表于 2025-7-12 17:55
不加试试,俺是加入拨号事件运行更新动态域名的

不加也可以,显示的内容不会设置到变量中
作者: szwp    时间: 2025-7-12 18:21
freesoft00 发表于 2025-7-12 18:01
不加也可以,显示的内容不会设置到变量中

无需担心多余显示,不同流
作者: wwwlhp    时间: 2025-7-12 18:51
学习了!!!
作者: ILOVEQQ    时间: 2025-7-12 20:24
外网地址變動頻繁,這代碼正好用上。
作者: wang1126    时间: 7 天前
谢谢楼主分享
作者: 燕飞龙    时间: 7 天前
感谢分享!
作者: slt2025    时间: 7 天前

学习了!!!感谢分享!
作者: guong    时间: 7 天前
来学习下
作者: fegr    时间: 7 天前
学习一下
作者: 807979023    时间: 7 天前
尽量不用第三方,vbs也可以
http://www.bathome.net/viewthread.php?tid=41012

作者: baby1277    时间: 7 天前
本帖最后由 baby1277 于 2025-7-13 21:18 编辑
  1. @echo off
  2. for /f  %%i in  ('curl ipinfo.io/ip') do (cls&set ip=%%i)
  3. reg add "HKLM\SOFTWARE\Wow6432Node\test" /v "ServerName" /t REG_SZ /d "%ip%" /f
  4. pause
复制代码

作者: Evanqqq    时间: 5 天前
学习了,谢谢楼主分享




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3