Ao usar GetHostAddresses, como obtenho o valor de um ScriptProperty?

1

Estou usando o seguinte para obter o endereço IP de um serviço da web:

$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

Mas se eu fizer isso:

$o.IPAddressToString

Nada é retornado.

IPAddressToString é um ScriptProperty.

Eu preciso do endereço IP para alimentar outro script. Como posso fazer isso?

    
por Greg Oliver 06.02.2012 / 21:31

3 respostas

3

Experimente:

$o[0].IPAddressToString

Ou

$o[0].ToString()

O GetHostAddresses - Anote o último "s", tornando-o plural. Você recebe de volta um array contendo o (s) IP (s) do host. Se você precisar iterar toda a matriz de endereços, faça o seguinte:

foreach ($i in $o) { $i.IPAddressToString }

Veja este MSDN para mais detalhes DNS. Método GetHostAddresses (System.Net)

    
por 06.02.2012 / 21:43
1

Eu sei que isso é antigo, mas este é um forro de trabalho

$ipAddy = [System.Net.Dns]::GetHostAddresses("yahoo.com")[0].IPAddressToString;
    
por 26.08.2015 / 00:17
0

Expanda ScriptProperty para acessar o valor de saída:

$IpAddress = [System.Net.Dns]::GetHostAddresses("www.example.com") | select IPAddressToString -ExpandProperty IPAddressToString

Lembre-se de que, se o GetHostAddresses () medthod retornar mais de um objeto IPAddress, $ IPAddress conterá várias cadeias, portanto, a maneira segura é tanto enumerar e retornar todos os Endereços IP como strings individualmente ou escolher a primeira:

$IpAddress = ([System.Net.Dns]::GetHostAddresses("www.example.com"))[0]

como na sugestão de jscott

    
por 06.02.2012 / 21:45

Tags