Updated Jul 15, 2026

Recon

Classify hosts as CDN, WAF, or cloud by IP

Detect CDN, WAF, and cloud technology for a given IP or hostname.

Agent

overview

What cdncheck does

cdncheck tells you whether an IP or hostname sits behind a CDN, a WAF, or a cloud provider. That label changes how you treat a target: a CDN edge is not the origin, a WAF shapes what scanners see, and a cloud IP may sit on shared infrastructure you should not probe blindly.

It matches addresses against maintained provider ranges and can name the service, from Cloudflare and Fastly to AWS and Azure. -match-cdn and -filter-cdn keep or drop hosts by provider so you can split a list into edges to skip and direct origins worth scanning. -jsonl makes those decisions programmatic.

Trickest runs cdncheck as a managed Recon node: IP, DNS name, or file in; file and folder of labels out. Run it after resolution to tag the host list, then route only non-CDN, non-WAF addresses into heavier scanning stages.

source github.com/projectdiscovery/cdncheck

use cases

Where cdncheck fits

Tag hosts by CDN, WAF, or cloud

Classify a resolved host list so you know which addresses are edge nodes, which sit behind a WAF, and which are direct cloud or origin IPs.

Skip CDN edges before scanning

Filter out CDN and WAF addresses so a port scanner or vulnerability scanner spends its time on origins rather than shared edge infrastructure.

Match a specific provider

Use the match flags to keep only hosts behind a named provider like Cloudflare or AWS when an assessment targets one platform.

Drive decisions with JSONL

Emit JSONL so downstream nodes branch on the CDN, WAF, and cloud labels automatically instead of relying on manual inspection.

reference

cdncheck inputs and flags

21 inputs
NameTypeFlagDescription
inputSTRING-inputIP or DNS name to process.
inputsFILE-inputFile of IPs or DNS names to process.
cdnBOOLEAN-cdnDisplay only CDN hits in CLI output.
wafBOOLEAN-wafDisplay only WAF hits in CLI output.
jsonlBOOLEAN-jsonlWrite output in JSON lines format.
match-cdnSTRING-match-cdnMatch hosts behind a named CDN (cloudfront, fastly, google, leaseweb, stackpath).
match-wafSTRING-match-wafMatch hosts behind a named WAF (akamai, cloudflare, incapsula, sucuri).
filter-cdnSTRING-filter-cdnFilter out hosts behind a named CDN provider.

Showing key inputs. cdncheck exposes 21 inputs in total.

Full flag reference (21 inputs)
NameTypeFlagDescription
cdnBOOLEAN-cdndisplay only cdn in cli output
wafBOOLEAN-wafdisplay only waf in cli output
respBOOLEAN-respdisplay technology name in cli output
cloudBOOLEAN-clouddisplay only cloud in cli output
inputSTRING-inputip / dns to process
jsonlBOOLEAN-jsonlwrite output in json(line) format
retrySTRING-retrymaximum number of retries for dns resolution (must be at least 1) (default 2)
inputsFILE-inputlist of ip / dns to process
silentBOOLEAN-silentonly display results in output
excludeBOOLEAN-excludeexclude detected ip from output
verboseBOOLEAN-verbosedisplay verbose output
no-colorBOOLEAN-no-colordisable colors in cli output
resolverSTRING-resolverlist of resolvers to use (comma separated)
match-cdnSTRING-match-cdnmatch host with specified cdn provider (cloudfront, fastly, google, leaseweb, stackpath)
match-wafSTRING-match-wafmatch host with specified waf provider (akamai, cloudflare, incapsula, sucuri)
resolversFILE-resolverlist of resolvers to use
filter-cdnSTRING-filter-cdnfilter host with specified cdn provider (cloudfront, fastly, google, leaseweb, stackpath)
filter-wafSTRING-filter-waffilter host with specified waf provider (akamai, cloudflare, incapsula, sucuri)
match-cloudSTRING-match-cloudmatch host with specified cloud provider (zscaler, aws, azure, google, office365, oracle)
filter-cloudSTRING-filter-cloudfilter host with specified cloud provider (zscaler, aws, azure, google, office365, oracle)
disable-update-checkBOOLEAN-disable-update-checkdisable automatic cdncheck update check

example

Run cdncheck

cdncheck · command
# tag IPs and keep Cloudflare WAF hits as JSONLcdncheck -input hosts.txt -waf -match-waf cloudflare -resp -jsonl -silent
sample output
198.51.100.10 [waf] [cloudflare]198.51.100.22 [cdn] [cloudfront]203.0.113.40 [cloud] [aws]203.0.113.55 [waf] [akamai]198.51.100.90 [cdn] [fastly]203.0.113.100 [cloud] [azure]

guidance

Choosing cdncheck

Use cdncheck after resolution to label hosts as CDN, WAF, or cloud and to prune edge nodes before heavy scanning. It classifies addresses; it does not find the origin behind them. Pair with hakoriginfinder for origin hunting. Run it before naabu or nuclei to focus those tools on real origins.

hakoriginfinder

Tries to find the origin behind a proxy. cdncheck identifies that a proxy or WAF is present in the first place.

wafw00f

Fingerprints the specific WAF on a web target. cdncheck classifies CDN, WAF, and cloud by IP range.

asnmap

Maps an organization to its netblocks. cdncheck tells you which of those IPs are CDN or cloud edges.

faq

cdncheck questions

CDN, WAF, or cloud, and optionally the specific provider, by matching the IP against maintained provider ranges.

Run cdncheck yourself

A host list feeds cdncheck, which tags CDN and WAF edges and passes the remaining origins to naabu so only direct IPs are port scanned into a queryable output.

Facts on this page come from the live Trickest tool library.