PublicIP.psm1
[CmdletBinding()] param() $scriptName = $MyInvocation.MyCommand.Name Write-Verbose "[$scriptName] Importing module" #region - From /private Write-Verbose "[$scriptName] - [/private] - Processing folder" #region - From /private/common.ps1 Write-Verbose "[$scriptName] - [/private/common.ps1] - Importing" $script:providerMap = @{ MyIP = 'https://api.myip.com/' IPInfo = 'https://ipinfo.io/json' } Write-Verbose "[$scriptName] - [/private/common.ps1] - Done" #endregion - From /private/common.ps1 Write-Verbose "[$scriptName] - [/private] - Done" #endregion - From /private #region - From /public Write-Verbose "[$scriptName] - [/public] - Processing folder" #region - From /public/Get-PublicIP.ps1 Write-Verbose "[$scriptName] - [/public/Get-PublicIP.ps1] - Importing" function Get-PublicIP { <# .SYNOPSIS Gets your public IP address. .DESCRIPTION Gets your public IP address. You can specify a provider to use by using the Provider parameter. .EXAMPLE Get-PublicIP .EXAMPLE Get-PublicIP -Provider MyIP #> param( # The provider to use to get the public IP address. [Parameter()] [ValidateScript({ $providerMap.Keys })] $Provider = 'IPInfo' ) Invoke-RestMethod -Uri $providerMap[$Provider] } Write-Verbose "[$scriptName] - [/public/Get-PublicIP.ps1] - Done" #endregion - From /public/Get-PublicIP.ps1 Write-Verbose "[$scriptName] - [/public] - Done" #endregion - From /public $exports = @{ Alias = '*' Cmdlet = '' Function = 'Get-PublicIP' Variable = '' } Export-ModuleMember @exports |