首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获得公共ipv4而不是ipv6

如何获得公共ipv4而不是ipv6
EN

Stack Overflow用户
提问于 2021-02-19 11:31:23
回答 2查看 1.2K关注 0票数 1

我最近升级了我的宽带连接,所以新的连接有ipv6和ipv4。我上一次只有ipv4。我希望将ipv4放在批处理文件中的变量中,而不是ipv6中。我使用的当前命令给出了默认ip,它以前用于将ipv4存储在变量中,但现在它将ipv6存储在其中。我不知道如何获得ipv4,因为我使用的nslookup只给出了ipv6。这是我当前的批处理文件。

代码语言:javascript
复制
@echo off
setlocal EnableExtensions Disabledelayedexpansion
cd /d "%~dp0"
for /f "tokens=1* delims=: " %%A in (
  'nslookup myip.opendns.com. resolver1.opendns.com 2^>NUL^|find "Address:"'
) Do set ExtIP=%%B

<save.ip set /p SavIP=
if "%SavIP%" neq "%ExtIP%" (
  echo %date% %time~0,5% : IP changed from %SavIP% to %ExtIP%.
  >save.ip echo %ExtIP%
  start http://%ExtIP%             #this is where I put the url
) else (
  echo ExtIP didn't change. Nothing to do.
)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-20 06:17:06

我刚刚测试了这个批处理文件,它在我的5/5侧工作!

代码语言:javascript
复制
@echo off
Title Get Public IP by Powershell and Batch
@for /f "delims=" %%# in (
'PowerShell -C "Resolve-DnsName -Name "'myip.opendns.com'" -Server "'resolver1.opendns.com'" | select IPAddress" ^| findstr "\."'
) do Set "MyPublicIP=%%#"
echo My Public IP Address  = %MyPublicIP%
pause

下面是另一个调用子例程:GetPublic_IP <Target> <IP>

代码语言:javascript
复制
@echo off
Title Get Public IP by Powershell and Batch
Set "MyPublicIP=myip.opendns.com"
Set "Google=www.google.com"
Set "Yahoo=www.yahoo.com"
Set "Stack=www.stackoverflow.com"

Call :GetPublic_IP "%MyPublicIP%" MyPublicIP 
echo My Public IP Address       = %MyPublicIP%
Call :GetPublic_IP "%Google%" Google_IP 
echo Google IP Address          = %Google_IP%
Call :GetPublic_IP "%Yahoo%" Yahoo_IP 
echo Yahoo IP Address           = %Yahoo_IP%
Call :GetPublic_IP "%Stack%" Stack_IP
echo Stackoverflow IP Address   = %Stack_IP%
pause
EXIT
::------------------------------------------------------------------------------------
:GetPublic_IP <Target> <IP>
@for /f "delims=" %%# in (
'PowerShell -C "Resolve-DnsName -Name '"%~1"' -Server "'resolver1.opendns.com'" | select IPAddress" ^| findstr "\."'
) do Set "%2=%%#
Exit /B
::------------------------------------------------------------------------------------
票数 1
EN

Stack Overflow用户

发布于 2021-02-19 14:21:23

我能够在默认网关而不是给定的代码中复制这个问题。在进行更改之前,该命令运行良好,并返回了我自己用来承载服务器的公共IPv4地址。

我做了以下工作:

works

  • Navigated 192.168.1.1->或任何默认网关都是使用"admin“和”密码“->登录的

  • -->或者,如果您已经将它们更改为高级>高级设置>,则从禁用的E 215设置为DHCP

切换这两个设置会导致返回IPv6或返回IPv4。当您切换时,您可能需要重新打开cmd,但由于您使用的是.bat,您可能只需重新运行它。

请记住,我使用的是频谱,您的默认网关设置可能会被不同的标记。如果您希望在以后的项目中使用IPv6,您可以随时重新切换它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66276775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档