我正在使用以下来获取Web服务的IP地址:
$o = [System.Net.Dns]::GetHostAddresses("myservice.domain.com") $o correctly returns the object properties. Address : ********** AddressFamily : InterNetwork ScopeId : IsIPv6Multicast : False IsIPv6LinkLocal : False IsIPv6SiteLocal : False IPAddressToString : 10.0.0.1
但是,如果我这样做:
$o.IPAddressToString
没有任何返回。
IPAddressToString是一个ScriptProperty。
我需要得到IP地址,以饲料到另一个脚本。 我怎样才能做到这一点?
试试这个:
$o[0].IPAddressToString
要么
$o[0].ToString()
GetHostAddresses – 记下最后的“s”,使其成为复数。 你得到一个包含主机IP的数组 。 如果您需要迭代整个地址数组,您可以执行以下操作:
foreach ($i in $o) { $i.IPAddressToString }
有关更多详细信息,请参阅此MSDN Dns.GetHostAddresses方法(System.Net)
我知道这是旧的,但这是一个工作class轮
$ipAddy = [System.Net.Dns]::GetHostAddresses("yahoo.com")[0].IPAddressToString;
展开ScriptProperty以访问输出值:
$IpAddress = [System.Net.Dns]::GetHostAddresses("www.example.com") | select IPAddressToString -ExpandProperty IPAddressToString
请注意,如果GetHostAddresses()方法返回多个IPAddress对象,则$ IPAddress将包含多个string,因此安全的方法是单独枚举并返回所有IP地址作为string,或者select第一个:
$IpAddress = ([System.Net.Dns]::GetHostAddresses("www.example.com"))[0]
就像jscott的build议一样