当前位置:  开发笔记 > 编程语言 > 正文

Windows Batch - 如何将外部IP转换为批处理文件变量

如何解决《WindowsBatch-如何将外部IP转换为批处理文件变量》经验,为你挑选了1个好方法。

我正在制作一个程序来检查用户的IP是否是某个IP地址.

目前,我创建了一个成功的内部IP版本:

@echo off
set userIp=192.168.90.100
for /f "tokens=4 delims= " %%i in ('route print ^| find " 0.0.0.0"') do set localIp=%%i
for /f "delims=[] tokens=2" %%a in ('ping %computername% -4 -n 1 ^| findstr "["') do set thisip=%%a
goto :Check

:Check
if %localIp%==%userIp% goto :Good
if %thisip%==%userIp% goto :Good
goto :Bad

我正在尝试使用与外部IP协同工作的相同功能.

我在网上研究过,这是我到目前为止所得到的.

@echo off
for /f "tokens=2 delims=:" %%a IN ('nslookup myip.opendns.com. resolver1.opendns.com ^| findstr /IC:"Address"') do if /i %%a=="10.11.12.13" goto :Good
goto :Bad

我需要一些帮助来解决这个问题.

真诚的,djmrminer.



1> 小智..:

使用纯批处理/已存在的工具:
编辑:更改批处理以正确处理IPv6地址

@Echo off
for /f "tokens=1* delims=: " %%A in (
  'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"'
) Do set ExtIP=%%B
Echo External IP is : %ExtIP%

参考

另一个与powershell:

@Echo off
For /f %%A in (
  'powershell -command "(Invoke-Webrequest "http://api.ipify.org").content"'
) Do Set ExtIP=%%A
Echo External IP is : %ExtIP%

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有