get-msolipranges.ps1
function Get-MSOLIPRanges { <# .SYNOPSIS Finds IP range for given O365 Products to create firewall rules. .DESCRIPTION Finds IP range for given O365 Products to create firewall rules. .EXAMPLE get-msolipranges #> $Office365IPsXml = New-Object System.Xml.XmlDocument $Office365IPsXml.Load("https://support.content.office.net/en-us/static/O365IPAddresses.xml") $updated = $Office365IPsXml.products.updated Write-Output "Last updated: $updated" [array]$products = $Office365IPsXml.products.product | Select-Object Name | ogv -PassThru foreach ($Product in ($Office365IPsXml.products.product | Where-Object ( {$Products -match $_.Name}) | Sort-Object Name)) { $IPv4Ranges = $Product | Select-Object -ExpandProperty Addresslist | Where-Object {$_.Type -eq "IPv4"} $IPv4Ranges = $IPv4Ranges | Where-Object {$_.address -ne $null} | Select-Object -ExpandProperty address foreach ($Range in $IPv4Ranges) { $ProductIPv4Range = New-Object -TypeName psobject -Property @{ 'Product' = $Product.Name; 'IPv4Range' = $Range; } Write-Output $ProductIPv4Range | Select-Object Product, IPv4Range } } } |