Skip to content

Instantly share code, notes, and snippets.

@ASkyeye
Forked from curi0usJack/Get-Origins.ps1
Created March 28, 2025 00:19
Show Gist options
  • Save ASkyeye/6dd439531685af869aa7b931fb396f4d to your computer and use it in GitHub Desktop.
Save ASkyeye/6dd439531685af869aa7b931fb396f4d to your computer and use it in GitHub Desktop.
PowerShell code to map CDN (Classic or FrontDoor) to their Origin hostname.
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