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.
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 -dRecommended: 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.
curl -fsSL https://ipforai.cc/sh -o /tmp/ipforai-check.sh
less /tmp/ipforai-check.sh
sh /tmp/ipforai-check.sh 8.8.8.8Arguments 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.
| Argument | What it does |
|---|---|
| IP (positional) | Profile and score that IP only; no local AI-path or routing probes |
| -y / --yes | Skip the confirmation prompt |
| -d / --detail | Show device, system, and HTTP status details |
| IPFORAI_TEST_IP | Test exit used when the local API only returns loopback |
| NO_COLOR | Disable 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.
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.