A User-Agent string is free to fake. The vendors' crawler fleets are not: OpenAI, Perplexity and Google publish the IP ranges their bots fetch from, and Anthropic documents its outbound range. Paste an IP and User-Agent from your logs — or the whole log line — and see whether the visit was the real crawler or someone pretending.
Checks the vendor's published IP ranges (refreshed daily) and reverse DNS. Nothing stored. Which crawler is which →
Checking ranges and reverse DNS…
The User-Agent tells us which crawler is being claimed and which vendor it belongs to. We then check the IP against that vendor's published ranges — OpenAI's gptbot.json, chatgpt-user.json and searchbot.json, Perplexity's perplexitybot.json, Google's googlebot.json, and Anthropic's documented outbound block. Inside the range: genuine. Outside it: an impostor. Vendors that publish nothing (Common Crawl, Bytedance and others) cannot be verified this way, so we show reverse DNS and say so.
Fake crawlers scrape content, waste bandwidth and, if you react by blocking the user-agent, you block the real engine too — and disappear from AI answers. The right response to an impostor is an IP-level rule; the right response to a genuine crawler is to decide, in robots.txt, what it may read.
“Crawl” agents (GPTBot, ClaudeBot, PerplexityBot) collect pages in bulk. “Live” agents (ChatGPT-User, OAI-SearchBot, Claude-User, Perplexity-User) fetch a page because a person is asking the engine a question right now — a live hit means your page was a candidate for an answer. AI Radar counts both, verified, per day.
The free check runs your real buyer questions across ChatGPT, Claude and Perplexity — mentioned, recommended and cited, per engine, with the answers as evidence.