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:
git clone https://github.com/jason5ng32/MyIP.gitInstall and build. This project uses pnpm โ if you don't have it, install it first (npm ships with Node, so this command always works):
npm install pnpm
pnpm install && pnpm run buildRun:
pnpm startThe 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:
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
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:latestEverything 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:
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.
---