Public/Get-NetAdaptersInfo.ps1

<#
.SYNOPSIS
Get the various IP addresses from network adapters.
 
.DESCRIPTION
Return IP addresses from network adapters based on the specified switches types (Ethernet, Wireless, Bluetooth).
 
.PARAMETER Ethernet
Include Ethernet adapters in the results.
.PARAMETER Wireless
Include Wireless adapters in the results.
.PARAMETER Bluetooth
Include Bluetooth adapters in the results.
 
.EXAMPLE
# Get Hyper V interfaces and IP addresses
Get-IpAdressesFromAdapters -Ethernet | Where-Object { $_.Name -match "HyperV"}
#>

function Get-NetAdaptersInfo {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory = $false)]
        [switch]$Ethernet = $false,
        [Parameter(Mandatory = $false)]
        [switch]$Wireless = $false,
        [Parameter(Mandatory = $false)]
        [switch]$Bluetooth = $false
    )

    $matcher = ""
    
    if ($Ethernet) {
        $matcher = "$(if($matcher) { `"$matcher|`" } else { `"`" })ethernet"
    }
    
    if ($Wireless) {
        $matcher = "$(if($matcher) { `"$matcher|`" } else { `"`" })wi-fi"
    }

    if ($Bluetooth) {
        $matcher = "$(if($matcher) { `"$matcher|`" } else { `"`" })bluetooth"
    }

    Get-NetAdapter | Where-Object { $_.InterfaceAlias -match $matcher } | Select-Object `
        InterfaceAlias,
    @{n = "IPv4"; e = { Get-NetIPAddress -InterfaceAlias $_.InterfaceAlias | Where-Object { $_ -match '^\d{1,3}(\.\d{1,3}){3}$' } } }
}