想做个批处理(bat)把获取的外网IP替换a.txt中的指定字串
想做个批处理,自动获取外网IP地址然后用这个IP替换a.txt中的指定字串如127.0.0.1,最后生成一个新的b.txt文件,比如得到的外网IP为:116.52.95....
想做个批处理,自动获取外网IP地址然后用这个IP替换a.txt中的指定字串如127.0.0.1,最后生成一个新的b.txt文件,
比如
得到的外网IP为:116.52.95.81 (批处理好像可以直接得到这个吧?)
a.txt内容为:127.0.0.1 端口 21
得到的b.txt 内容应为:116.52.95.81 端口 21
在这里先说声谢谢
现在可以生成外网IP a.txt文件了 我要用这个a.txt文件里的第一行IP地址替b.txt里的指定字串 然后生成新文件c.txt
这样怎么做批处理 展开
比如
得到的外网IP为:116.52.95.81 (批处理好像可以直接得到这个吧?)
a.txt内容为:127.0.0.1 端口 21
得到的b.txt 内容应为:116.52.95.81 端口 21
在这里先说声谢谢
现在可以生成外网IP a.txt文件了 我要用这个a.txt文件里的第一行IP地址替b.txt里的指定字串 然后生成新文件c.txt
这样怎么做批处理 展开
3个回答
展开全部
没有什么程序可以直接得到外网地址,批处理更不能,这个代码是先打开www.ip38.com,然后从网页源码中取出IP地址数据。
至于替换a.txt,没有a.txt较详细的内容,写出来的替换不能保证会不会替换掉别的内容。
所以要求替换还是你自己来做吧,变量%ip%保存的就是外网地址。
@echo off
start www.ip38.com
pushd "%USERPROFILE%\Local Settings\Temporary Internet Files\"
:loop
ping -n 2 127.1>nul
for /f "tokens=*" %%i in ('dir /s /O:-D /b *ip38*.htm') do (
set "fpath=%%i"
goto :loop2
)
goto :loop
:loop2
for /f "tokens=2 delims=址:&" %%i in ('findstr "本机IP地址" "%fpath%"') do (
set "ip=%%i"
)
echo 外网地址为:%ip%
至于替换a.txt,没有a.txt较详细的内容,写出来的替换不能保证会不会替换掉别的内容。
所以要求替换还是你自己来做吧,变量%ip%保存的就是外网地址。
@echo off
start www.ip38.com
pushd "%USERPROFILE%\Local Settings\Temporary Internet Files\"
:loop
ping -n 2 127.1>nul
for /f "tokens=*" %%i in ('dir /s /O:-D /b *ip38*.htm') do (
set "fpath=%%i"
goto :loop2
)
goto :loop
:loop2
for /f "tokens=2 delims=址:&" %%i in ('findstr "本机IP地址" "%fpath%"') do (
set "ip=%%i"
)
echo 外网地址为:%ip%
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
快又稳
2024-10-28 广告
2024-10-28 广告
在Linux环境下配置基于域名的虚拟主机,需安装Apache或Nginx等Web服务器,并编辑配置文件。以Apache为例,需创建虚拟主机配置文件,指定域名、文档根目录等,然后启用该配置文件并重启Apache服务。同样,Nginx也需在相应...
点击进入详情页
本回答由快又稳提供
展开全部
不一定正确,主要是不知道你机子网卡配置情况和a.txt 里有些什么,测试一下
@echo off&setlocal enabledelayedexpansion
set ip1=127.0.0.1
set f1=a.txt
set f2=b.txt
for /f "tokens=2 delims=:" %%i in ('ipconfig/all^|findstr/ic:"IP Address"')do set "ip2=%%i"
set ip2=%ip2: =%&echo. %ip1% 换为 %ip2%
(for /f "delims=" %%j in (%f1%)do set h=%%j&set h=!h:%ip1%=%ip2%!&echo.!h!)>%f2%
pause&rem 注:文件名没考虑改成带空格的
@echo off&setlocal enabledelayedexpansion
set ip1=127.0.0.1
set f1=a.txt
set f2=b.txt
for /f "tokens=2 delims=:" %%i in ('ipconfig/all^|findstr/ic:"IP Address"')do set "ip2=%%i"
set ip2=%ip2: =%&echo. %ip1% 换为 %ip2%
(for /f "delims=" %%j in (%f1%)do set h=%%j&set h=!h:%ip1%=%ip2%!&echo.!h!)>%f2%
pause&rem 注:文件名没考虑改成带空格的
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼主想在外网来 telnet 这台主机吗?
根据环境的不同,至少有二种方法:一种原创,一种抄袭的,哈哈!
方法一: 这台主机是直接接adsl 的,就可以使用这种纯批处理的方法:
@echo off
for /f "skip=4 tokens=1,2,3,4,5,6*" %%i in ('netsh interface ip show ipaddress') do if "%%m"=="宽带连接" set serverip= %%i
echo %serverip% 端口 21
:生成b.txt
echo %serverip% 端口 21>b.txt
pause
有注意"宽带连接"名字是否同你本机拨号的名字一致.
方法二:通过局域网代理方法上网,也有局域网代理拨号上网的,需要使用vbs +bat 来处理,当然也是一个bat文件.
@echo off
echo.&echo 稍候。。。&echo.
(Echo Set oDOM = WScript.GetObject^(WScript.Arguments^(0^)^)
Echo Do until oDOM.readyState = "complete"
Echo WScript.sleep 200
Echo Loop
Echo WScript.Echo oDOM.documentElement.outerText)>"%windir%\temp\webget.vbs"
cscript //NoLogo /e:vbscript "%windir%\temp\webget.vbs" "http://www.ikaka.com/ip/" | find "来自"
Del/q/f "%windir%\temp\webget.vbs" >nul 2>nul
pause>nul
ip已经出来了,难道你还不会生成 116.52.95.81 端口 21 这样的文件吗?
根据环境的不同,至少有二种方法:一种原创,一种抄袭的,哈哈!
方法一: 这台主机是直接接adsl 的,就可以使用这种纯批处理的方法:
@echo off
for /f "skip=4 tokens=1,2,3,4,5,6*" %%i in ('netsh interface ip show ipaddress') do if "%%m"=="宽带连接" set serverip= %%i
echo %serverip% 端口 21
:生成b.txt
echo %serverip% 端口 21>b.txt
pause
有注意"宽带连接"名字是否同你本机拨号的名字一致.
方法二:通过局域网代理方法上网,也有局域网代理拨号上网的,需要使用vbs +bat 来处理,当然也是一个bat文件.
@echo off
echo.&echo 稍候。。。&echo.
(Echo Set oDOM = WScript.GetObject^(WScript.Arguments^(0^)^)
Echo Do until oDOM.readyState = "complete"
Echo WScript.sleep 200
Echo Loop
Echo WScript.Echo oDOM.documentElement.outerText)>"%windir%\temp\webget.vbs"
cscript //NoLogo /e:vbscript "%windir%\temp\webget.vbs" "http://www.ikaka.com/ip/" | find "来自"
Del/q/f "%windir%\temp\webget.vbs" >nul 2>nul
pause>nul
ip已经出来了,难道你还不会生成 116.52.95.81 端口 21 这样的文件吗?
参考资料: 自己的脑袋
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询