【问题标题】:Get only the IP Adress in Anaconda Powershell在 Anaconda Powershell 中仅获取 IP 地址
【发布时间】:2021-08-25 21:13:51
【问题描述】:

我只想在 Windows 的 Anaconda Powershell 中获取我的 IP 地址的输出。

curl https://ipinfo.io/ip

给我以下内容:

    StatusCode        : 200
    StatusDescription : OK
    Content           : 22.031.123.456
    RawContent        : HTTP/...
                        ...
                        ...
                    ...
                    ...
                    Content-Type: text/html; charset=utf-8
                    Date: ...
                    Via:...
Forms             : {}
Headers           : {[..., *], [...], [...],
                    [..., ...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : ...
RawContentLength  : ...

如您所见,“内容”显示了我的 IP 地址。但是没有任何其他信息我无法获得 IP 地址。

注意:“curl api.ipify.org”和“curl ipinfo.io/ip”和其他人正在做同样的事情。

【问题讨论】:

  • 好吧,curl 只是 Powershell 中 Invoke-WebRequest 的别名,所以如果您期望其他输出,即来自某些 Windows curl 安装,除非您删除别名,否则您将看不到它在 PowerShell 中。话虽如此,如果您只想要 IP 地址,您可以使用(curl https://ipinfo.io/ip).Content
  • 示例中的内容绝对不是 IP 地址
  • 好点,@Ash,但不需要删除别名 - 只需使用 curl.exe 调用可执行文件
  • @mklement0 公平点。我仍然忘记了那个,但是当您指定扩展名时,where.exe 之类的东西当然仍然有效。
  • 这和 Anaconda 有什么关系? Conda 在启动时添加了一些环境变量,但 PowerShell 仍然是 Microsoft Windows 应用程序。

标签: windows powershell curl anaconda ip-address


【解决方案1】:

Windows PowerShell中,curl指的是外部curl.exe程序;相反,它是 PowerShell 的 Invoke-WebRequest cmdlet 的内置别名

为了调用curl.exe包括文件扩展名.exe

curl.exe ipinfo.io/ip  # Note: The https:// part isn't strictly needed.

请注意,这PowerShell (Core) v6+ 中不再需要,其中 curl 别名已与其他别名一起被删除,以免影响操作系统自带的外部程序。


还请注意,您也可以使用 Invoke-RestMethod cmdlet,它与 Invoke-WebRequest 不同,它返回一个围绕实际数据的 包装器对象 - 返回直接响应数据(并且,如果适用,将 XML 数据解析为 [xml] 实例,将 JSON 数据解析为 [pscustomobject] 实例);它的内置别名是irm:

irm ipinfo.io/ip  # irm == Invoke-RestMethod

作为一般提示:要确定哪个命令(PowerShell 原生命令或外部程序)curl 等给定名称引用,请使用 Get-Command cmdlet

  • 默认情况下,将列出该名称的有效命令。
  • 如果添加-All 开关,您可能会看到shadowed 命令表单。
    • 在 Windows 上,如果外部程序被隐藏,您仍然可以通过排除 .exe 扩展名来调用它,如图所示。

    • 一般来说,如果阴影命令与有效命令的类型不同,您可以使用Get-Command-Type 参数来定位阴影命令并通过@987654344 调用它@,call operator;例如,在 Windows 上附加 .exe 的(不太理想的)替代方法是:

      & (Get-Command -Type Application curl) ipinfo.io/ip
      

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多