Last active
June 8, 2023 12:49
-
-
Save sahammer/87edc9e340a9bc54d1b8fb69fe13fcdb to your computer and use it in GitHub Desktop.
Simple PowerShell function to retrieve Cloudflare Zones on an account
This file contains 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
<# | |
.SYNOPSIS | |
Quick PowerShell function to obtain your CloudFlare Zones using the v4 API | |
.DESCRIPTION | |
This function is to obtain a list of zones on your CloudFlare account | |
You can then use the returned id for other CloudFlare API calls. | |
https://api.cloudflare.com/ | |
.PARAMETER Token | |
Obtain your API token here: https://support.cloudflare.com/hc/en-us/articles/200167836-Where-do-I-find-my-Cloudflare-API-key- | |
.PARAMETER EMail | |
This is typically the e-mail you login to the CloudFlare Dashboard with. | |
.EXAMPLE | |
C:\Temp> Get-CFZones -Token your-api-key -E-Mail your@email.address | |
.NOTES | |
Author: Sterling Hammer @CDLHamma - www.hammertime.tech | |
#> | |
function Get-CFZones { | |
param ( | |
[Parameter(Mandatory = $true)] | |
[string]$Token, | |
[Parameter(Mandatory = $true)] | |
[string]$EMail | |
) | |
$APIURI = 'https://api.cloudflare.com/client/v4' | |
#Build required header for authentication | |
$Headers = @{ | |
'X-Auth-Key' = $Token | |
'X-Auth-Email' = $EMail | |
} | |
$Zones = Invoke-RestMethod -Headers $Headers -Uri $APIURI/zones | |
$ZoneOutput = @() | |
foreach ($zone in $Zones.result) { | |
$ZoneOutput += [PSCustomObject]@{ | |
"Id" = $Zone.id | |
"Name" = $Zone.name | |
"Status" = $Zone.status | |
"Paused" = $Zone.paused | |
"Name Servers" = $Zone.name_servers | |
} | |
} | |
Write-Output $ZoneOutput | |
} | |
$APIToken = "your-api-key" | |
$AccountEmail = "your@e-mail.address" | |
#Grab a list of CloudFlare Zones on your account | |
Get-CFZones -Token $APIToken -EMail $AccountEmail | |
#Grab a specific Zone ID - this will be used in other CloudFlare API Calls | |
(Get-CFZones -Token $APIToken -EMail $AccountEmail |where Name -eq yourdomain.com).Id |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment