DEV Community

IP99
IP99

Posted on

Before You Open Claude or Codex: Check Your Egress IP Risk

If you use Claude or Codex — or any AI product whose abuse systems lean hard on network signals — the path you use to log in matters. Shared residential proxies, recycled VPN exits, and dial-up pools show up constantly in fraud and abuse telemetry. Platforms do not publish their exact rules, and this post is not a bypass guide. What you can do is basic egress hygiene: know what your current public IP looks like before you authenticate.

IP99 (by ThreatHunter) is a free, no-key IP risk and geolocation lookup. It will not guarantee that Claude or Codex keep your account. What it can do is tell you whether the address you are about to present already carries fresh proxy-class evidence — and whether that evidence is still active or already aged out.

Why egress hygiene is not “VPN lore”

A lot of advice online collapses into slogans: “use a clean IP,” “residential is safer,” “datacenter gets banned.” Reality is messier.

  • Residential does not mean human. Modern proxy markets sell home-broadband exits on purpose. A usage_type of residential (DYN) alone is not a green light.
  • Datacenter does not mean malicious. Cloud resolvers, CI runners, and corporate VPN gateways sit in IDC space every day. Blindly blocking hosting locks out whole clouds.
  • Addresses change hands. A dial-up pool can burn through hundreds of legitimate ISP addresses in a day; later that week the same address may belong to a normal household. That is why IP99 frames every answer as a judgement that expires, not a permanent label.

So the useful habit is smaller: before a sensitive login, look up this egress now, read the evidence state, then decide whether to switch networks — the same way you would avoid a café Wi‑Fi for banking without pretending you cracked the bank’s risk model.

Two minutes: check yourself

1. See your egress

Open what-is-my-ip or call the free API with no address path — IP99 answers about the client that reached it:

curl https://ip99.com/v1/ip
Enter fullscreen mode Exit fullscreen mode

Anonymous tier: 500 lookups/day per client IP, no signup. Signed-in accounts get a higher daily quota via a self-serve key. Same fields either way.

A live call on 15 Oct 2026 from a cloud egress returned (values move as evidence ages; shape is stable):

{
  "ip": "140.248.50.27",
  "computed_at": "2026-10-15T13:09:35Z",
  "evidence_state": "none",
  "risk": {
    "score": 0,
    "level": "none",
    "signals": ["hosting"]
  },
  "network": {
    "asn": 54113,
    "usage_type": "IDC"
  },
  "geo": {
    "continent": "NA",
    "country": "US",
    "region": "Virginia",
    "city": "Ashburn",
    "tz": "America/New_York"
  }
}
Enter fullscreen mode Exit fullscreen mode

Here hosting is a network property (IDC / CDN-class space), not a proxy verdict. evidence_state: none with score 0 means IP99 holds no current verifiable risk evidence for this address — a coverage gap or a quiet address, not a certificate of safety.

2. Or probe any address you care about

curl https://ip99.com/v1/ip/8.8.8.8
Enter fullscreen mode Exit fullscreen mode

Same day, Google Public DNS:

{
  "ip": "8.8.8.8",
  "evidence_state": "none",
  "risk": { "score": 0, "level": "none", "signals": ["hosting"] },
  "network": { "asn": 15169, "usage_type": "IDC" },
  "geo": { "country": "US", "city": "Mountain View" }
}
Enter fullscreen mode Exit fullscreen mode

Again: datacenter property, no active proxy-class hit in this feed. Useful as a sanity check that your client and parser work — not as “8.8.8.8 is safe for logins.”

3. Read the verdict in order

  1. evidence_state — active (fresh evidence still scoring), stale (seen before, aged past the window, score 0 — weak feature only), none (never seen / no current evidence).
  2. risk.score / risk.level — 0–100 measuring freshness and strength of verifiable evidence, not “probability you are an attacker.” Levels: 0 → none, 1–29 low, 30–69 medium, 70–100 high.
  3. risk.signals — treat proxy, vpn, dialup_pool, hijacked_proxy, cloud_phone, cloud_service as proxy-class cues. Treat hosting / mobile as network context. Do not hard-block on the latter alone.
  4. network.usage_type + network.asn — prior context (DYN / MOB / IDC / GTW / …), not a person.
  5. Decide like hygiene — if the exit already looks like a busy proxy or dial-up pool, switch to a quieter, account-appropriate network (your normal broadband, a compliant workplace path) and check again. A low score is not permission to violate a platform’s terms.

hijacked_proxy deserves a special note: the holder is often a victim whose device was borrowed by malware. For personal pre-checks, treat it as “this egress is contaminated right now” and move — not as a reason to accuse a household.

Soft claims only

Say this Do not say this
Risk hygiene before login “Guaranteed no ban / 100% unban”
Shared exits are higher-risk inputs to abuse systems “Claude/OpenAI use IP99” (unverified)
Evidence expires; re-check when you change networks “Any VPN is fine if the score is 0”
Free tier: 500 lookups/day anonymous Tor detection (IP99 has no Tor signal)

Fine-grained co-tenancy (share_tier T0–T3) is a Pulse professional field for operators who choose whether to block an IP. For personal pre-checks, the practical cue is simpler: proxy-class signals plus a non-none evidence state usually means “pick another egress.”

Why IP99’s model fits this habit

Risk data on IP99 updates on the order of seconds (the product states a 10-second refresh cadence), while many static blocklists refresh on days. The score is designed to decay as evidence ages. An address that was a proxy exit last week may be a quiet NAT today — which is exactly why a screenshot from last month is a bad decision input, and a two-minute lookup before you open Claude or Codex is a better one.

If you are wiring tools into Claude Code, Cursor, or another MCP client, the same lookup is exposed as ip_risk_lookup on https://ip99.com/mcp (anonymous Streamable HTTP; OAuth account URL if you want the signed-in quota). Humans can stick to the website or curl.

Try it

# your current egress
curl https://ip99.com/v1/ip

# any IPv4 / IPv6 you care about
curl https://ip99.com/v1/ip/8.8.8.8
Enter fullscreen mode Exit fullscreen mode

Docs: ip99.com/api. Quotas and overseas self-serve plans: ip99.com/en/pricing. IP99 is built by ThreatHunter.

Know the exit you present. Re-check when the path changes. Treat 0 as “no current evidence,” not as a free pass — and you will make fewer avoidable login mistakes without pretending any API can promise an unban.

Top comments (0)