WhatIsMyIP.psm1
<# .Synopsis Get External IP address .DESCRIPTION Get External IP address using free ipfy.org API. .EXAMPLE PS C:\> Get-PublicIP 0.0.0.1 .EXAMPLE PS C:\> whatismyip -ComputerName Host01.domain.local 0.0.0.2 #> function Get-PublicIP { [CmdletBinding(SupportsShouldProcess=$true, PositionalBinding=$false, ConfirmImpact='Medium')] [Alias('whatismyip','Get-ExternalIP')] Param ( # Computer Name [Parameter(ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true)] [ValidateNotNull()] [ValidateNotNullOrEmpty()] [Alias("hostname")] $ComputerName=$null ) Begin { } Process { if ($pscmdlet.ShouldProcess("computer $ComputerName")) { if($ComputerName -eq $null){ $IPObj = Invoke-RestMethod -Uri 'https://api.ipify.org?format=json' $ExternalIP=$IPObj.IP $ExternalIP }else{ $IPObj = Invoke-Command -ComputerName $ComputerName -ScriptBlock {Invoke-RestMethod -Uri 'https://api.ipify.org?format=json'} $ExternalIP=$IPObj.IP $ExternalIP } } } End { } } |