Get-O365IPAddress.ps1
<#PSScriptInfo
.VERSION 1.0.3 .GUID ce979c1d-cb4a-4ea6-8c82-9f0aa5911e29 .AUTHOR thomas.illiet .COMPANYNAME netboot.fr .COPYRIGHT (c) 2017 Netboot. All rights reserved. .TAGS Office365 .LICENSEURI https://raw.githubusercontent.com/Netboot-France/Get-O365IPAddress/master/LICENSE .PROJECTURI https://github.com/Netboot-France/Get-O365IPAddress .ICONURI https://raw.githubusercontent.com/Netboot-France/Get-O365IPAddress/master/Resource/Icon.png .EXTERNALMODULEDEPENDENCIES .REQUIREDSCRIPTS .EXTERNALSCRIPTDEPENDENCIES .RELEASENOTES #> <# .SYNOPSIS This script gets the Office 365 IP address & URL information. .DESCRIPTION This script gets the Office 365 IP address & URL information, in XML format, and returns the Product (O365, SPO, etc...), AddressType (IPV4,IPV6, OR URL), and Address (Ex: 13.107.6.152/31) information. .NOTES File Name : Get-O365IPAddress.ps1 Author : Thomas ILLIET, contact@thomas-illiet.fr Date : 2017-10-23 Last Update : 2018-01-08 Test Date : 2018-01-08 Version : 1.0.3 .EXAMPLE PS> Get-O365IPAddress Addresses AddressType Product --------- ----------- ------- {2603:1020:200::682f:a1d8/128, 2603:1020:201:a::2b1/128, ...} IPv6 o365 {13.64.196.27/32, 13.64.198.19/32, 13.64.198.97/32, ...} IPv4 o365 {*.aadrm.com, *.activedirectory.windowsazure.com, ...} URL o365 .LINK Invoke-WebRequest https://support.office.com/en-us/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2 https://support.content.office.net/en-us/static/O365IPAddresses.xml https://github.com/thomas-illiet/Powershell/tree/master/Office365/Other/Get-O365IPAddress #> Try { Write-Verbose "Getting the Office 365 IP address & URL information from $O365IPAddresses." $O365IPAddresses = "https://support.content.office.net/en-us/static/O365IPAddresses.xml" [XML]$O365XMLData = Invoke-WebRequest -Uri $O365IPAddresses -DisableKeepAlive -ErrorAction Stop $O365IPAddressObj = @() ForEach($Product in $O365XMLData.Products.Product) { ForEach($AddressList in $Product.AddressList) { $O365IPAddressProps = @{ Product = $Product.Name; AddressType = $AddressList.Type; Addresses = $AddressList.Address } $O365IPAddressObj += New-Object -TypeName PSObject -Property $O365IPAddressProps } } return $O365IPAddressObj } Catch { Write-Error "Failed to get the Office 365 IP address & URL information from $O365IPAddresses." } |