Bot signals — Search & SEO crawler

Verify Baiduspider by 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.

risk.is_crawler rDNS Reviewed

Check an IP

Is this IP really Baiduspider?

Checks the address against what Baiduspider publishes, the same evidence behind risk.is_crawler.

01 — Verification

How IPAPI.GR verifies Baiduspider.

Only from what Baiduspider publishes about itself. No third-party blocklists, no behavioural guesses.

Baiduspider

risk.is_crawler
Method
rDNS Forward-confirmed reverse DNS
Reverse DNS
PTR hostname must be baiduspider-a-b-c-d.crawl.baidu.com, where a-b-c-d is the IPv4 address itself. The hostname must then resolve forward to the same address.
Refresh
Checked when the address is looked up; a confirmed result is reused for up to an hour.

02 — In the response

What a match looks like.

A lookup of a Baiduspider address sets risk.is_crawler. The flags come with geolocation and network data in the same response, for Pro API keys.

The response says which kind of bot an address belongs to, not which operator. Pair it with the user agent: a request that claims to be Baiduspider but doesn't match is unverified.

GET /api/lookup/{ip}?key=PRO_KEY
{
  // … location and network fields …
  "risk": {
    "is_ai": false,
    "is_crawler": true,
    "is_scanner": false
  }
}

03 — Questions

About Baiduspider.

How do I verify Baiduspider with reverse DNS?

Look up the PTR record for the IP address. The hostname must end in .crawl.baidu.com, and a forward lookup of that hostname must return the same IP address. A PTR record alone can be set by anyone who controls the address, so the forward confirmation is the part that matters.

Which risk flag does Baiduspider set?

A matching address sets risk.is_crawler in the lookup response. The risk flags are returned for Pro API keys.

Verify Baiduspider on every request.

Pro: 40,000,000 requests a day with is_ai, is_crawler and is_scanner in every lookup.