【问题标题】:How to obtain public ip address using windows command prompt?如何使用 windows 命令提示符获取公共 IP 地址?
【发布时间】:2017-02-11 17:00:04
【问题描述】:

在不使用任何第三方软件或依赖 powershell 的情况下通过命令提示符执行此操作的任何方式?

一个简单的命令就像在我使用 curl http://ipinfo.io/ip 的 Linux/Mac 上一样。

谢谢!

【问题讨论】:

    标签: windows shell ip ip-address command-prompt


    【解决方案1】:

    在 powershell 中使用 Invoke-WebRequest 模块。例如:

    Invoke-WebRequest ifconfig.me/ip
    

    Source

    编辑:我误读了问题,并认为您需要使用 Powrshell。

    cmd.exe 中没有内置命令来返回公共 IP 地址。但是你可以使用 nslookup 来解决它,像这样;

    nslookup myip.opendns.com. resolver1.opendns.com
    

    OP 的另一种选择:

    telnet curlmyip.com 80
    

    连接后输入“GET”。

    注意:在 Windows 上默认不安装/启用 telnet。

    Source

    【讨论】:

    • 在命令提示符下不使用 powershell 的任何方式?
    • 在使用该命令时不断收到 DNS 请求超时。 ://
    • 这是一个基本的 nslookup 命令。只要您可以解析到外部 DNS 地址,这将起作用。您可能没有正确配置 dns 解析器。您可以尝试使用 Google 的 DNS 解析器(8.8.8.8 和 8.8.4.4),但您需要在本地计算机上查看。
    • 命令提示符中没有获取公网IP地址的命令。这只是您施加的限制的一种解决方法。如果你愿意的话,这是一个聪明的“把戏”。您最好使用实际上具有执行您想要的功能的电源外壳。如果已安装,您可以尝试使用 telnet。默认情况下,它未在 Windows 上安装/启用。
    • 我猜这里真正的问题是 OpenDNS 显然提供了这项服务,允许您向他们的服务器查询标签 myip.opendns.com。也许答案应该说明这一点;就目前而言,它看起来像“这是如何使用nslookup”。
    【解决方案2】:

    最简单的方法是按照命令开火

    curl "http://myexternalip.com/raw"

    &您将获得公共 IPV4。

    【讨论】:

    • curl 也安装了,如果你安装git bash -> C:\Program Files\Git\mingw32\bin\curl.exe or xampp -> C:\xampp\apache\bin\curl.exe
    【解决方案3】:

    在正常的 dos 批处理中试试这个

    @echo off
    nslookup myip.opendns.com resolver1.opendns.com | find "Address" >"%temp%\test1.txt"
    more +1 "%temp%\test1.txt" >"%temp%\test2.txt"
    set /p MyIP=<%temp%\test2.txt
    del %temp%\test2.txt
    set MyIP=%MyIP:~10%
    echo %MyIP%
    

    现在,%MyIP% 可以回显或用作变量以供其他批处理使用。

    【讨论】:

      【解决方案4】:

      这个命令对我有用:

      nslookup myip.opendns.com. resolver1.opendns.com
      

      【讨论】:

        【解决方案5】:
        curl ip-adresim.app
        

        它同时支持 IPv4 和 IPv6。

        【讨论】:

          【解决方案6】:

          您可以在 Windows 和 Linux 中使用这些命令

          curl ifconfig.me

          Curl是升级到最新版本时Windows内置的东西,所以不叫第三方软件。

          curl ifconfig.co

          在 Linux 中,几乎 Distros 已经有了这个命令。

          非常感谢 ArthurG 的命令。它工作完美,可以多种方式用于批处理脚本。

          【讨论】:

            【解决方案7】:

            Windows/Linux 版本:

            nslookup myip.opendns.com resolver1.opendns.com
            

            Unix 版本:

            dig +short myip.opendns.com @resolver1.opendns.com
            

            【讨论】:

            • dig 没有什么特别的“Unix”;还有hostnslookupdighost 中的所有三个通常都安装在 Unix / Linux / Mac 上,尽管通常最多其中一个将成为任何给定平台上标准安装的一部分(尽管在我的 Mac 上,我在/usr/bin 中拥有所有三个;但也许这是 XCode 的一部分)。 nslookup 曾经是基本 Windows 安装的一部分,但我猜这可能不再是真的。
            • 无论如何,这基本上复制了之前答案中的信息。
            【解决方案8】:

            这对我来说非常适合:

            curl http://ip.jsontest.com/ > ip.json
            for /f "tokens=2 delims=:" %%a in ('type ip.json') do (set publicip=%%a)
            set publicip=%publicip:{=%
            set publicip=%publicip:}=%
            set publicip=%publicip:"=%
            echo %publicip:~1%
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-09-28
              • 2012-11-03
              • 2011-03-16
              • 1970-01-01
              • 2016-12-15
              • 1970-01-01
              • 2017-09-23
              • 1970-01-01
              相关资源
              最近更新 更多