-
-
Save ASkyeye/6dd439531685af869aa7b931fb396f4d to your computer and use it in GitHub Desktop.
PowerShell code to map CDN (Classic or FrontDoor) to their Origin hostname.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Import-Module Az | |
Connect-AzAccount | |
$ipre = "^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$" | |
function Get-ClassicOrigins() { | |
$profs = Get-AzCDNProfile | |
$coll = @() | |
foreach ($prof in $profs) { | |
$eps = Get-AzCdnEndpoint -ResourceGroupName $prof.ResourceGroupName -ProfileName $prof.Name | |
foreach ($ep in $eps) { | |
$origin = $ep.Origin.Hostname | |
if ($origin -match $ipre) { | |
$domain = "IPADDRESS" | |
} else { | |
$domainspl = $origin.Split(".") | |
$domain = "$($domainspl[-2]).$($domainspl[-1])" | |
} | |
$coll += [PSCustomObject]@{ | |
AzureDomain = "$($ep.Name).azureedge.net" | |
OriginHostname = $origin | |
OriginDomain = $domain | |
} | |
} | |
} | |
return $coll | |
} | |
function Parse-FDData { | |
param ( | |
[string]$FrontDoorOriginGroupName, | |
[string]$ResourceGroupName, | |
[string]$ProfileName | |
) | |
$info = @() | |
$fdo = Get-AzFrontDoorCdnOrigin -OriginGroupName $FrontDoorOriginGroupName -ResourceGroupName $ResourceGroupName -ProfileName $ProfileName | |
$hostname = $fdo.Hostname | |
#Write-Output $hostname | |
$domainspl = $hostname.Split(".") | |
$domain = "$($domainspl[-2]).$($domainspl[-1])" | |
if ($FrontDoorOriginGroupName -like "*-Migrated*") { | |
$t = $FrontDoorOriginGroupName.Split("-")[0] | |
$AzureDomain = "$($t).azureedge.net" | |
} | |
else { $AzureDomain = $FrontDoorOriginGroupName } | |
return [PSCustomObject]@{ | |
AzureDomain = $AzureDomain | |
OriginHostName = $fdo.Hostname | |
OriginDomain = $domain | |
} | |
} | |
function Get-FrontDoorOrigins() { | |
$fds = Get-AzFrontDoorCdnProfile | |
$coll = @() | |
foreach ($fd in $fds) { | |
$fdogroup = Get-AzFrontDoorCdnOriginGroup -ProfileName $fd.Name -ResourceGroupName $fd.ResourceGroupName | |
if ($fdogroup.Name.Length -gt 1) { | |
foreach ($fdog in $fdogroup.Name) { | |
if (-not [String]::IsNullOrEmpty($fdogroup.Name)) { | |
$coll += Parse-FDData -FrontDoorOriginGroupName $fdog -ResourceGroupName $fd.ResourceGroupName -ProfileName $fd.Name | |
} | |
} | |
} | |
} | |
return $coll | |
} | |
Write-Output "[*] Getting Classic CDNs" | |
$coll1 = Get-ClassicOrigins | |
Write-Output "[*] Getting Front Door CDNs" | |
$coll2 = Get-FrontDoorOrigins | |
Write-Output "`n`n" | |
$final = $coll1 + $coll2 | |
$final | Sort OriginDomain | Format-Table |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment