Src/Public/Get-NodeIP.ps1
function Get-NodeIP { <# .SYNOPSIS Used by Diagrammer to translate node name to an network ip address type object. .DESCRIPTION .NOTES Version: 0.1.1 Author: Jonathan Colon .EXAMPLE .LINK #> param( [string]$Hostname ) process { try { try { if ("InterNetwork" -in [System.Net.Dns]::GetHostAddresses($Hostname).AddressFamily) { $IPADDR = ([System.Net.Dns]::GetHostAddresses($Hostname) | Where-Object { $_.AddressFamily -eq 'InterNetwork' }).IPAddressToString } elseif ("InterNetworkV6" -in [System.Net.Dns]::GetHostAddresses($Hostname).AddressFamily) { $IPADDR = ([System.Net.Dns]::GetHostAddresses($Hostname) | Where-Object { $_.AddressFamily -eq 'InterNetworkV6' }).IPAddressToString } else { $IPADDR = 127.0.0.1 } } catch { $null } $NodeIP = Switch ([string]::IsNullOrEmpty($IPADDR)) { $true { 'Unknown' } $false { $IPADDR } default { $Hostname } } } catch { $_ } return $NodeIP } } |