powershell - 为 IP 地址调用“解析”的异常 - 为什么?
问题描述
所以我正在更新一些东西。它以前使用过 whoami.akamai.net,但现在被 whoami.ds.akahelp.net(和/或特定于协议的 whoami.ipv4.akahelp.net 和 whoami.ipv6.akahelp.net)所取代。所以需要更新。无论如何,当我这样做时
$ips = (((Resolve-DnsName 'whoami.ds.akahelp.net' -QuickTimeout -Type txt).Strings) -replace 'ns','').Trim();
$ips = [System.Net.IPAddress]::Parse($ips)
它会生成错误 - 使用“1”参数调用“Parse”的异常:“指定了无效的 IP 地址。” - 但 IP 是有效的。然后我注意到在 IP 之前似乎有一条额外的线,这样可以解释异常,但我无法摆脱这条线。我希望输出只是 IP 地址。无论如何,我无法解析 IP,并且 IP 之前的额外行使输出无用,因为它提供了一些其他代码,因为它在其余代码中被检测为无效 IP,而且当它真正看到额外的行时(我思考)。那么我在这里做错了什么?
解决方案
返回的对象是一个数组,你需要指定你需要数组中的哪一项。
PS C:\Users\jacob> $ips
81.134.99.118
PS C:\Users\jacob> $ips.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\Users\jacob> $ips[1]
81.134.99.118
PS C:\Users\jacob> $ips[1].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True String System.Object
因此,使用您拥有的代码,要指定您需要的数组中的项目,您可以编写如下:
$ips = (Resolve-DnsName 'whoami.ds.akahelp.net' -QuickTimeout -Type txt).Strings[1].Trim()
$ips = [System.Net.IPAddress]::Parse($ips)
推荐阅读
- vim - 打开新文件时如何阻止vim水平拆分?
- python - 通过比较更多列值来删除行(标题名称之间有空格)
- python - Scipy ndimage.convolve 跳过通道的总和
- apache-spark - pyspark 中基于案例的场景
- android - 在android中使用openmp时相同的线程ID
- python - Python正则表达式用一个前导空格的特殊字符截断字符串
- reactjs - React Native - 是否可以使用 rn-fetch-blob 下载多个资产?
- javascript - 视图仅在某些情况下不更新
- sharepoint-online - 从 sharepoint online/onPremise 下载时如何保留所有文件和文件夹文档文件的元数据?
- mysql - 如何使用“AS”语法?