Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Look up IP addresses and your own public IP with zero API keys — geolocation, ISP/ASN, and hosting flags via ip-api.com and ipify through curl. Use when asked what's my public IP, where is this IP from, whose network is this address, or is this IP a VPN/datacenter. Produces the lookup with ISP, ASN, and location fields interpreted honestly (city-level accuracy caveats included), and the rerunnable command.
.claude/skills/mohitagw15856-ip-lookup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-02 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 35% | 0% |
"Whose IP is this?" comes up in log triage, abuse reports, debugging, and plain curiosity — and keyless services answer it: ipify for "what's my IP," ip-api.com for "what's that IP." This skill fetches, reads the fields that matter (ASN and ISP are usually the real answer; city is a guess wearing coordinates), and holds the two honesty lines the domain needs: IP geolocation is approximate, and none of this is a person's identity.
Ask for these if not provided:
curl -s https://api.ipify.org (v4) · curl -s https://api64.ipify.org (v6-preferring) — one word of output, script-safe. Also embedded in most routers' complaints, but this is the clean answer.curl -s "http://ip-api.com/json/8.8.8.8?fields=status,country,regionName,city,isp,org,as,proxy,hosting,query" — the fields parameter keeps it tight; proxy and hosting flags answer the VPN/datacenter question directly. Free tier is HTTP and rate-limited (~45/min) — fine for lookups, not for bulk scans.The interpretation first: "Datacenter IP — AS24940 Hetzner, Germany; hosting flag set. Not a residential user."]
| Field | Value | |---|---| Country · region/city (labeled approximate) · ISP · org · ASN · proxy/hosting flags]
Source: ip-api.com / ipify] · rerun: [exact curl] IP geolocation is approximate (city-level at best) and identifies networks, not people.
as/org fields differ exactly when it's interesting (resellers, VPNs, corporate egress)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 9,178 | 5,454 | -41% | 1 | 1 | 0% | 1,781 | 2,112 | +19% | 0 | 0 | — |
case-02 | fail→pass | 11,898 | 7,402 | -38% | 1 | 1 | 0% | 2,339 | 2,322 | -1% | 0 | 0 | — |
case-03 | fail→pass | 13,815 | 9,689 | -30% | 1 | 1 | 0% | 2,225 | 2,641 | +19% | 0 | 0 | — |
case-04 | pass→pass | 9,935 | 8,942 | -10% | 1 | 1 | 0% | 1,679 | 2,432 | +45% | 0 | 0 | — |
case-05 | pass→pass | 5,918 | 4,524 | -24% | 1 | 1 | 0% | 1,060 | 1,923 | +81% | 0 | 0 | — |
case-06 | fail→fail | 13,283 | 14,876 | +12% | 1 | 1 | 0% | 2,377 | 3,467 | +46% | 0 | 0 | — |
case-07 | fail→pass | 11,558 | 7,841 | -32% | 1 | 1 | 0% | 1,979 | 2,356 | +19% | 0 | 0 | — |
case-08 | pass→pass | 4,934 | 7,009 | +42% | 1 | 1 | 0% | 684 | 2,121 | +210% | 0 | 0 | — |
case-09 | fail→fail | 6,644 | 3,137 | -53% | 1 | 1 | 0% | 1,114 | 1,495 | +34% | 0 | 0 | — |
case-10 | pass→pass | 7,531 | 3,512 | -53% | 1 | 1 | 0% | 1,312 | 1,588 | +21% | 0 | 0 | — |
case-11 | pass→pass | 8,463 | 7,049 | -17% | 1 | 1 | 0% | 1,744 | 2,395 | +37% | 0 | 0 | — |
case-21 | pass→pass | 10,404 | 5,494 | -47% | 1 | 1 | 0% | 1,871 | 1,899 | +1% | 0 | 0 | — |
case-12 | pass→pass | 8,290 | 8,328 | +0% | 1 | 1 | 0% | 1,618 | 2,656 | +64% | 0 | 0 | — |
case-13 | pass→pass | 12,269 | 10,945 | -11% | 1 | 1 | 0% | 2,456 | 3,090 | +26% | 0 | 0 | — |
case-14 | fail→pass | 10,934 | 8,298 | -24% | 1 | 1 | 0% | 1,769 | 2,385 | +35% | 0 | 0 | — |
case-15 | pass→pass | 7,810 | 5,749 | -26% | 1 | 1 | 0% | 1,474 | 2,219 | +51% | 0 | 0 | — |
case-16 | pass→pass | 8,282 | 5,452 | -34% | 1 | 1 | 0% | 1,648 | 2,057 | +25% | 0 | 0 | — |
case-17 | fail→pass | 5,047 | 4,259 | -16% | 1 | 1 | 0% | 928 | 1,715 | +85% | 0 | 0 | — |
case-18 | pass→pass | 6,975 | 2,955 | -58% | 1 | 1 | 0% | 1,172 | 1,444 | +23% | 0 | 0 | — |
case-19 | fail→pass | 11,122 | 5,496 | -51% | 1 | 1 | 0% | 2,014 | 2,088 | +4% | 0 | 0 | — |
case-20 | pass→pass | 8,560 | 3,827 | -55% | 1 | 1 | 0% | 1,651 | 1,659 | +0% | 0 | 0 | — |
case-22 | pass→pass | 2,729 | 2,296 | -16% | 1 | 1 | 0% | 480 | 1,414 | +195% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.