The best IP Toolbox. Check your IP address & geolocation, test IP for WebRTC and DNS IP leaks, run an IP quality check, browser fingerprint check, website availability check, network speed test, global latency test, MTR test, Whois search, and more.

RAW Doc

CONTRIBUTING

CONTRIBUTING.md

Welcome Contributors! ๐Ÿ‘‹

We're delighted that you're interested in contributing to our project! This document provides guidelines to ensure a smooth contribution process for everyone involved.

Table of Contents

- CONTRIBUTING.md
- Welcome Contributors! ๐Ÿ‘‹
- Table of Contents
- Code of Conduct
- Getting Started
- Reporting Bugs
- Feature Requests
- Submitting Changes
- Setting Up Your Environment
- Testing
- Pull Request Guidelines
- Code Review Process
- Community and Support
- Thank You! ๐Ÿ‘

Code of Conduct

This project adheres to a Code of Conduct. By participating, you are expected to uphold this code.

Getting Started

If you're new to the project, consider:

- Reading the project's README for an overview.
- Checking the issues labeled as good first issue for an easy entry point.

Reporting Bugs

Please follow the bug report template provided in BUG_REPORT_TEMPLATE.md. Include terminal and console logs for a comprehensive report.

Feature Requests

We love to hear your ideas! Open an issue with the tag feature request and provide a clear and detailed explanation of the feature and its benefits.

Submitting Changes

Before making any changes, please:

1. Open a new issue discussing your proposed change.
2. Fork the repository and create your branch from dev โ€” all contributions are based on dev, not main.

Setting Up Your Environment

To set up the development environment for this project, you'll need to:

1. Install Node.js, Vite, and Vue3.
2. Clone the repository.
3. Run pnpm install to install dependencies.
4. Follow the instructions for Docker and Vercel deployment in our documentation if necessary.

Testing

Ensure that all tests pass and, if applicable, add new tests for your changes. Run pnpm test to execute tests.

Pull Request Guidelines

When you're ready to submit your changes:

1. Open your pull request against the dev branch โ€” not main. main only receives release merges from dev, so any PR targeting main will be asked to retarget.
2. Rebase your branch onto the latest dev before submitting.
3. Keep one concern per PR โ€” don't bundle unrelated changes (e.g. a feature plus a dev-environment tweak) into the same pull request.
4. Ensure your changes adhere to the coding standards and guidelines, with a clear description of what you changed.

Code Review Process

The project maintainers will review your pull request. They might request changes or provide feedback before merging.

Community and Support

Join our community channels (link your channels here) for support and discussions.

Thank You! ๐Ÿ‘

Your contributions are what make this community great. We appreciate your efforts in making this project better!

---

README

๐Ÿงฐ MyIP - A Better IP Toolbox

<div align="center">

<a href="https://trendshift.io/repositories/5332" target="_blank"><img src="https://trendshift.io/api/badge/repositories/5332" alt="jason5ng32%2FMyIP | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>

[](https://github.com/awesome-selfhosted/awesome-selfhosted)

[](https://ipcheck.ing)

๐Ÿ‡บ๐Ÿ‡ธ English | ๐Ÿ‡จ๐Ÿ‡ณ ็ฎ€ไฝ“ไธญๆ–‡ | ๐Ÿ‡ท๐Ÿ‡บ ะ ัƒััะบะธะน | ๐Ÿ‡ซ๐Ÿ‡ท Franรงais

๐Ÿ‘‰ Demo: https://ipcheck.ing

Feel free to bookmark the demo or deploy your own.

[](https://hub.docker.com/r/jason5ng32/myip)

</div>

๐Ÿ‘€ Main Features

* ๐Ÿ›œ View Your IPs: Detects and displays your local IPs, sourcing from multiple IPv4 and IPv6 providers.
* ๐Ÿ” Search IP Information: Provides a tool for querying information about any IP address.
* ๐Ÿ•ต๏ธ IP Information: Presents detailed information for all IP addresses, including country, region, ASN, geographic location, and more.
* ๐Ÿ›ฐ๏ธ ASN History & Upstream Topology: View historical AS announcements for an IP prefix, and visualize the upstream paths from an ASN to the Tier 1 backbone networks.
* ๐Ÿšฆ Availability Check: Tests the accessibility of various websites, such as Google, GitHub, YouTube, ChatGPT, and others.
* ๐Ÿ“ก Service Status: Shows the live availability of well-known services (Claude, OpenAI, GitHub, Cloudflare, and more) from their official status pages, with per-service status and recent incidents.
* ๐Ÿšฅ WebRTC Detection: Identifies the IP address used during WebRTC connections.
* ๐Ÿ›‘ DNS Leak Test: Shows DNS endpoint data to evaluate the risk of DNS leaks when using VPNs or proxies.
* ๐Ÿš€ Speed Test๏ผšTest your network speed with edge networks.
* ๐Ÿš Proxy Rule Testing: Test the rule settings of proxy software to ensure their correctness.
* โฑ๏ธ Global Latency Test: Performe lantency tests on servers located in different regions around the world.
* ๐Ÿš‰ MTR Test: Perform MTR tests on servers located in different regions around the world.
* ๐Ÿ”ฆ DNS Resolver: Performs DNS resolution of a domain name from multiple sources and obtains real-time resolution results that can be used for contamination determination.
* ๐Ÿšง Censorship Check: Check if a website is blocked in some countries.
* ๐Ÿ““ Whois Search: Perform whois information search for domain names or IP addresses
* ๐Ÿ“€ MAC Lookup: Query information of a physical address
* ๐Ÿ–ฅ๏ธ Browser Fingerprints๏ผšMultiple ways to caculate your browser fingerprint
* ๐Ÿ“‹ Cybersecurity Checklist๏ผšA comprehensive cybersecurity checklist with a total of 258 items

๐Ÿ’ช Also

* ๐ŸŒ— Dark Mode: Automatically toggles between dark and daylight modes based on system settings, with an option for manual switching.
* ๐Ÿ“ฒ PWA Supported๏ผšCan be added as a desktop app on your phone as well as a Chrome app on your computer.
* โŒจ๏ธ Keyboard Shortcuts: Supports keyboard shortcuts for all functions, press ? to view the shortcut list.
* ๐ŸŒ Based on availability test results, it indicates whether global internet access is currently feasible.
* ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡จ๐Ÿ‡ณ ๐Ÿ‡ท๐Ÿ‡บ ๐Ÿ‡ซ๐Ÿ‡ท English, Chinese, Russian, French support.

๐Ÿ“• How to Use

Deploying in a Node Environment

Make sure you have Node.js installed.

Clone the code:

bash
git clone https://github.com/jason5ng32/MyIP.git

Install and build. This project uses pnpm โ€” if you don't have it, install it first (npm ships with Node, so this command always works):

bash
npm install pnpm
pnpm install && pnpm run build

Run:

bash
pnpm start

The program will run on port 18966.

Using Docker

Click the 'Deploy to Docker' button at the top to complete the deployment. Or, use the following shell:

bash
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest

๐Ÿ“– Documentation

Full guides live in the MyIP Docs Center: docs.ipcheck.ing

* Developer Guide โ€” deployment, configuration, architecture, and contributing
* Knowledge Base โ€” how to use every tool, step-by-step network diagnosis, and networking concepts

โš™๏ธ Configuration

Two settings matter before anything else:

* MaxMind GeoLite2 (required) โ€” free credentials that power IP geolocation and ASN lookups. Without them, the MaxMind source returns 503. โ†’ MaxMind Setup
* ALLOWED_DOMAINS (required on a real domain) โ€” hostname allowlist for the backend API. Without it, every request from a non-localhost domain gets 403. โ†’ Reverse Proxy & Domains

bash
docker run -d -p 18966:18966 \
-e MAXMIND_ACCOUNT_ID="YOUR_ACCOUNT_ID" \
-e MAXMIND_LICENSE_KEY="YOUR_LICENSE_KEY" \
-e MAXMIND_AUTO_UPDATE="true" \
-e ALLOWED_DOMAINS="your-domain.com" \
--name myip --restart always \
jason5ng32/myip:latest

Everything else โ€” optional API keys, security & rate limiting, logging, Sentry, the curl API domains โ€” is documented in the Environment Variables reference.


๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป Advanced Usage

If you're using a proxy for internet access, consider adding this rule to your proxy configuration (modify it according to your client). This setup lets you check both your real IP and the IP when using the proxy:

ini

IP Testing


IP-CIDR,1.0.0.2/32,Proxy,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,Proxy,no-resolve
DOMAIN,4.ipcheck.ing,DIRECT
DOMAIN,6.ipcheck.ing,DIRECT

Rule Testing


DOMAIN,ptest-1.ipcheck.ing,Proxy1
DOMAIN,ptest-2.ipcheck.ing,Proxy2
DOMAIN,ptest-3.ipcheck.ing,Proxy3
DOMAIN,ptest-4.ipcheck.ing,Proxy4
DOMAIN,ptest-5.ipcheck.ing,Proxy5
DOMAIN,ptest-6.ipcheck.ing,Proxy6
DOMAIN,ptest-7.ipcheck.ing,Proxy7
DOMAIN,ptest-8.ipcheck.ing,Proxy8

๐Ÿ’– Sponsors

As a open source project, I'm very grateful to the following sponsors for their support:

<a href="https://www.digitalocean.com/?refcode=fd2634a3981b&utm_campaign=Referral_Invite&utm_medium=Referral_Program&utm_source=badge"><img src="https://res.ipcheck.ing/img/digitalocean_logo.png" width="240px" title="DigitalOcean" /></a>

<a href="https://www.1password.com"><img src="https://res.ipcheck.ing/img/1password_logo.png" alt="1Password" title="1Password" width="240px" /></a>

<a href="https://www.greptile.com/"><img src="https://res.ipcheck.ing/img/greptile_logo.png" alt="Greptile" title="Greptile" width="240px" /></a>

<a href="https://www.sentry.io"><img src="https://res.ipcheck.ing/img/sentry_logo.png" alt="Sentry" title="Sentry" width="240px" /></a>

<a href="https://www.gitbook.com"><img src="https://res.ipcheck.ing/img/gitbook_logo.png" alt="GitBook" title="GitBook" width="240px" /></a>

<a href="https://www.cloudflare.com/lp/project-alexandria/"><img src="https://res.ipcheck.ing/img/cloudflare_logo.png" alt="Cloudflare Project Alexandria" title="Cloudflare Project Alexandria" width="240px" /></a>

---

SECURITY

Reporting a Vulnerability

The security of our project is a top priority. If you discover a security vulnerability, we encourage you to report it directly through our GitHub Issues.

How to Report a Vulnerability

1. Report Through GitHub Issues: Please create a new issue in our GitHub Issues page. Provide a clear and detailed description of the potential vulnerability. Include steps to reproduce it, if possible.

2. Avoid Public Disclosure: To protect the community, please do not disclose the vulnerability publicly until we have had a chance to address it.

3. Response Time: We aim to respond to security issue reports within 48 hours, acknowledging receipt.

4. Updates: We will keep you informed about our progress on the issue through the GitHub Issues thread.

5. Credit: We value your contribution to the security of this project. We will acknowledge your efforts in the GitHub Issue thread and in our release notes, if a fix is implemented.

Security Update Process

Upon receiving a report of a vulnerability, our team will:

- Promptly investigate the issue.
- Develop a fix and test it thoroughly.
- Release an updated version that addresses the issue.
- Provide updates and patches as needed.

Thank you for helping us keep our project safe and secure.

---