Start with one command

In an interactive terminal the script shows a confirmation prompt first: Enter continues, Ctrl-C cancels. In pipes, CI, or uncertain terminals add -y to run without prompting.

The official entry is always https://ipforai.cc/sh; the version comes from SCRIPT_VERSION inside the script and the X-IP-for-AI-Check-Version response header.

Quick start (runs the remote script directly; trust the source first)
curl -fsSL https://ipforai.cc/sh | sh

# A specific IP: profile and score only
curl -fsSL https://ipforai.cc/sh | sh -s -- 8.8.8.8

# CI or redirected output: skip the prompt, add detail
curl -fsSL https://ipforai.cc/sh | sh -s -- -y -d

Recommended: review before you run

curl | sh executes a remote script immediately. Downloading and reading it first is the safer habit: the script is a single POSIX sh file with no bash-specific features, so a quick read shows everything it touches.

The safer flow
curl -fsSL https://ipforai.cc/sh -o /tmp/ipforai-check.sh
less /tmp/ipforai-check.sh
sh /tmp/ipforai-check.sh 8.8.8.8

Arguments and environment variables

The only runtime dependency is curl. Without an IP argument the script checks the local exit and probes several AI services and vendor endpoints (third-party domains); with an IP argument it only fetches that profile.

Arguments and environment variables supported by check.sh
ArgumentWhat it does
IP (positional)Profile and score that IP only; no local AI-path or routing probes
-y / --yesSkip the confirmation prompt
-d / --detailShow device, system, and HTTP status details
IPFORAI_TEST_IPTest exit used when the local API only returns loopback
NO_COLORDisable colored output when set to a non-empty value

What the script does and does not do

The script does

  • Request ipforai.cc and v4-probe.ipforai.cc for exit profiles (v4-probe is A-record-only, the reliable IPv4 probe behind a proxy)
  • Probe public entries and API endpoints of 11 AI services
  • Compare routing exits of 20+ services against the same-family local exit
  • Create a temp directory for probe results and delete it on exit

The script does not

  • Write or modify any local configuration
  • Install any software
  • Require an API key or an account
  • Read account state or issue an account verdict

Reading the output: IP quality and routing

The community calls these checks IP quality checks or IP checkups; the script output follows the same quality dimensions.

[01] Exit overview: per address family — exit IP, region, ASN, network type (data-center, residential, etc.), routing type (native, broadcast, etc.), and proxy risk. IPv4 and IPv6 are listed separately.

[02] AI service paths: ✓ reachable, ! unexpected response, × failed — based on measured response codes from public endpoints, with each service's official region-policy reference alongside.

[03] AI routing exits: the exit IP each service actually sees, compared with the same-family local exit; a mismatch flag means that service took a different path.

[04] Environment score: computed by the backend from the exit profile (local mode prefers the dominant routing exit), with itemized deductions; the script never rewrites scoring locally.

Results describe this network environment only — not account login, subscription, or platform-risk decisions.

Just JSON, no report

/json is a server-side exit-profile endpoint with one optional parameter, ip. It reads the exit the request arrives from — it never touches your local system or browser.

Developer JSON endpoint
curl -sS 'https://ipforai.cc/json'

# Force IPv4 / IPv6 exit
curl -4 -sS 'https://ipforai.cc/json'
curl -6 -sS 'https://ipforai.cc/json'

# Look up a specific IP
curl -sS 'https://ipforai.cc/json?ip=8.8.8.8'

Usage boundaries

The script and this page describe the network environment only. They do not read account state and cannot replace account, subscription, or platform-risk conclusions.