Free tool — Bot verification
Is this IP really Baiduspider?
Anyone can send a crawler’s user agent. Paste the IP and we check it against what 143 operators — OpenAI, Anthropic, Google, Bing, Perplexity and more — publish about their own bots: IP range files and forward-confirmed reverse DNS.
How Baiduspider is verified
Forward-confirmed reverse DNS
Only the crawler-specific IPv4-encoded hostname convention demonstrated in Baidu's official forward/reverse DNS example. Does not classify all baidu.com or Baidu ERNIE.
- Sets
risk.is_crawler- Hostnames
- baiduspider-<ip>.crawl.baidu.com
- Catalogue id
- baidu
01 — Why the IP, not the name
User agents are a claim. IP addresses are evidence.
A user agent is a header the client writes itself. curl -A "Googlebot/2.1" is all it takes to borrow a name a site trusts. Real operators make their bots checkable instead, in one of two ways.
Published range
The operator lists its IP blocks
OpenAI, Anthropic, Google, Bing, Perplexity, Apple and others publish JSON or text files of CIDR blocks. We re-fetch each file at least hourly, and its evidence expires within 24 hours if refreshes fail. An address is verified only while it sits inside a currently published block.
e.g. openai.com/gptbot.json · claude.com/crawling/bots.json
Verified rDNS
The operator documents a hostname
Baidu, Yandex, Sogou, Coc Coc and others tell you to check reverse DNS. The PTR name must end in their domain and resolve back to the same address. A PTR record alone is worthless: whoever owns the IP block can set it to anything.
e.g. baiduspider-220-181-108-75.crawl.baidu.com → 220.181.108.75
Every operator and source we use is on Bot signals. Deep dives:
02 — Questions
About this check.
Why can’t I trust the user agent?
A user agent is a free-text header the client chooses. Anyone can send “Googlebot” or “GPTBot” with one command, so scrapers routinely borrow the names of crawlers that sites allow. Only the IP address, checked against what the operator itself publishes, tells you who really sent the request.
How do bot operators publish their IP addresses?
In one of two ways. Most publish a range file: a JSON or text list of CIDR blocks at a fixed URL (for example openai.com/gptbot.json or Google’s common-crawlers.json). Others document a reverse-DNS convention: the address’s PTR hostname must end in their domain, and that hostname must resolve back to the same address.
What does “forward-confirmed reverse DNS” mean?
We look up the PTR record of the address, check that the hostname ends in a domain the operator documents, then resolve that hostname and require the original address in the answer. A PTR record alone proves nothing, because whoever controls an IP block can set its PTR to any name.
Is this the same answer the API gives?
Yes. The verdict is read from the same in-memory catalogue that sets risk.is_ai, risk.is_crawler and risk.is_scanner in the lookup API, covering 143 operators. One difference: the API can also match a few scanner networks by the ASN its geolocation providers return; this tool does not run a provider lookup.
Why do I get “unknown”?
Either the reverse-DNS check timed out or failed, or the operator’s published list is currently unavailable to us. We never fall back to an old copy: every source is re-fetched at least hourly and its evidence expires within 24 hours if refreshes keep failing. Try again in a minute.
Does “not listed” mean the visitor is human?
No. It means no operator we track claims the address. Plenty of automated traffic comes from cloud and residential networks that nobody publishes.
API
Get this answer on every request.
The lookup API returns risk.is_ai, risk.is_crawler and risk.is_scanner from the same catalogue, next to geolocation and ASN.
Free to use · 60 checks per hour per address