Skip to content

Repository files navigation

🐷 GIP (Get IP)

Dependency-free, TypeScript-friendly module and CLI tool to quickly retrieve your real public IPv4 or IPv6 address.

Module installation

Use your favorite package manager to install GIP as a dependency in your project:

# with NPM
npm install gip

# with PNPM
pnpm add gip

# with Bun
bun add gip

# with Deno
deno add npm:gip

Module usage

import gip from "gip";

try {
  const ip = await gip();
  console.log(ip);
} catch (error) {
  console.log(`Can't get your IP. Reason: ${error}`);
}

Usage with options

import gip from "gip";

const options = {
  services: ["ipv4.icanhazip.com", "ifconfig.me/ip"],
  ensure: 10,
  verbose: true,
  type: "ipv4",
};

try {
  const ip = await gip(options);
  console.log(ip);
} catch (error) {
  console.log(`Can't get your IP. Reason: ${error}`);
}

CLI installation

# with NPM
npm install -g gip

# with PNPM
pnpm add -g gip

# with Bun
bun install -g gip

# with Deno
deno install -g npm:gip

CLI usage

gip
# 133.74.20.69

gip --ensure 10
# 133.74.20.69

gip --type ipv6
# 2001:0db8:85a3:0000:0000:8a2e:0370:7334

gip --services "https://ipv4.icanhazip.com/" "https://ifconfig.me/ip"
# 133.74.20.69

CLI usage without installation

# with NPM
npx gip

# with PNPM
pnx gip

# with Bun
bunx gip

# with Deno
deno run --allow-net npm:gip

Additional info

  • Passing your own services will not prioritize them. You will get the answer from the fastest responding service anyway.
  • If you pass a service without a specified protocol, HTTPS will be used.
  • IP family enforcement (family: 4 / family: 6) is applied at the DNS-resolution level via node:http / node:https. This means even dual-stack (IPv4 + IPv6) domains are forced to resolve using the correct address family.
  • Lists of built-in services are located in services.mjs. If you know any reliable services, feel free to contribute.

License

MIT License

About

Dependency-free, TypeScript-friendly module and CLI tool to quickly retrieve your real public IPv4 or IPv6 address.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Sponsor this project

Used by

Contributors

Languages