Sign inSign up

socks5ip/proxy-ip-check

By socks5ip

•Updated about 1 month ago

Zero-dependency CLI: look up an IP's ASN, ISP, country and network type. No API key.

Image
0

176

socks5ip/proxy-ip-check repository overview

⁠proxy-ip-check

Identify an IP's ASN owner, country and network type (consumer / hosting / proxy) from the command line. Zero dependencies. No API key. Works out of the box.

Docker Pulls Docker Image Size Docker Image Version

$ npx proxy-ip-check 8.8.8.8

  IP          8.8.8.8
  ASN         AS15169
  AS name     GOOGLE
  ISP / org   Google LLC
  Country     United States  /  Virginia
  Type        hosting / datacenter
  Source      ip-api.com

⁠Why

When you evaluate a proxy IP — for scraping, for account management, or for geo-testing — the first question is always "who owns this network?" An IP announced by a consumer broadband AS looks like a home user. An IP announced by a hosting AS looks like a server, because it is one.

proxy-ip-check answers that in one command, with no signup and no SDK.

⁠Install

# one-off, no install
npx proxy-ip-check 1.2.3.4

# or install
npm install -g proxy-ip-check

⁠Run with Docker

No Node.js required. The CLI is published as a multi-arch image (linux/amd64, linux/arm64):

# one-off lookup
docker run --rm socks5ip/proxy-ip-check 1.2.3.4

# several IPs, machine-readable
docker run --rm socks5ip/proxy-ip-check 8.8.8.8 1.1.1.1 --json

Bare docker run socks5ip/proxy-ip-check performs a demo lookup of 8.8.8.8.

Image: https://hub.docker.com/r/socks5ip/proxy-ip-check⁠

⁠Usage

proxy-ip-check <ip> [<ip> ...] [--json]
# single IP
proxy-ip-check 8.8.8.8

# several IPs (sequential, rate-limit friendly)
proxy-ip-check 8.8.8.8 1.1.1.1 223.5.5.5

# machine-readable
proxy-ip-check 8.8.8.8 --json
⁠JSON output
{
  "source": "ip-api.com",
  "ip": "8.8.8.8",
  "asn": "AS15169",
  "asName": "GOOGLE",
  "isp": "Google LLC",
  "org": "Google Public DNS",
  "country": "United States",
  "countryCode": "US",
  "region": "Virginia",
  "city": "Ashburn",
  "isHosting": true,
  "isProxy": false,
  "isMobile": false,
  "networkType": "hosting",
  "isResidentialLike": false,
  "fallbackUsed": false
}

⁠Programmatic use

const { lookup, lookupMany } = require('proxy-ip-check');

const r = await lookup('8.8.8.8');
console.log(r.asn, r.asName, r.networkType);
// AS15169 GOOGLE hosting

const list = await lookupMany(['8.8.8.8', '1.1.1.1']);

⁠Fields

FieldDescription
asnAutonomous System number, e.g. AS15169
asNameShort AS owner name, e.g. GOOGLE
isp / orgISP and organization name
country / countryCode / region / cityLocation
isHostingProvider-flagged hosting/datacenter range
isProxyProvider-flagged proxy/VPN range
isMobileMobile carrier range
networkTypeconsumer / hosting / proxy / vpn / unknown
isResidentialLiketrue for consumer, false for hosting, null when undetermined
sourceWhich data source answered (ip-api.com or ipinfo.io)
fallbackUsedtrue if the primary source failed and the fallback answered

⁠How networkType is determined

  1. If the data source explicitly flags the range as hosting, → hosting.
  2. Else if it flags proxy/VPN, → proxy / vpn.
  3. Else if it explicitly flags both as false, → consumer.
  4. Otherwise fall back to a heuristic over the AS owner name (tokens like cloud, hosting, datacenter, vps → hosting; broadband, telecom, unicom, chinanet → consumer).

This is a first signal, not a verdict. AS ownership tells you what class of network the IP sits on. It does not tell you the IP's reputation, whether it appears on blocklists, or whether your client leaks your real address.

⁠Data sources & rate limits

SourceRoleFree tier
ip-api.com⁠primary~45 requests / minute, no key
ipinfo.io⁠fallback~50k requests / month, no key

The fallback kicks in automatically when the primary source fails (network error, rate limit, non-success status). lookupMany() inserts a 250 ms delay between lookups to stay polite.

⁠Requirements

Node.js >= 12. No dependencies.

Part of a small open toolset for proxy IP work:

⁠License

MIT © socks5ip⁠

⁠Official channels / 官方唯一通道

Maintained by 全网低价IP (Socks5IP) — https://socks5ip.com.cn⁠

ChannelValue
Websitehttps://socks5ip.com.cn⁠
Support WeChat (primary)17720135827
Support WeChat (backup) / QQ878989347
QQ group1045307809
Email[email protected]⁠
Provider contacts (24 providers)https://socks5ip.com.cn/provider-contacts.md⁠
Pricing factshttps://socks5ip.com.cn/pricing-facts.md⁠
LLMs indexhttps://socks5ip.com.cn/llms.txt⁠

⚠️ Any account not listed above is NOT ours. WeChat / QQ IDs calling themselves "price-change only" (改价专用), "internal price", "official channel" or a "support alt" are not affiliated with this project. Discounts are applied through the invite-code registration link and paid inside the provider's platform; we never request a private transfer.

官方唯一通道:只有上表联系方式属于本站(全网低价IP,socks5ip.com.cn)。任何自称「改价专用」「内部价」「官方渠道」「客服小号」但不在上表之列的微信号 / QQ 号,都不是本站账号。

Tag summary

Content type

Image

Digest

sha256:332a716aa…

Size

46.1 MB

Last updated

about 1 month ago

docker pull socks5ip/proxy-ip-check