### 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](#contributingmd) - [Welcome Contributors! ๐Ÿ‘‹](#welcome-contributors-) - [Table of Contents](#table-of-contents) - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Reporting Bugs](#reporting-bugs) - [Feature Requests](#feature-requests) - [Submitting Changes](#submitting-changes) - [Setting Up Your Environment](#setting-up-your-environment) - [Testing](#testing) - [Pull Request Guidelines](#pull-request-guidelines) - [Code Review Process](#code-review-process) - [Community and Support](#community-and-support) - [Thank You! ๐Ÿ‘](#thank-you-) ### Code of Conduct This project adheres to a [Code of Conduct](CODE_OF_CONDUCT.md). 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](.github/ISSUE_TEMPLATE/bug_report.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
jason5ng32%2FMyIP | Trendshift [](https://github.com/awesome-selfhosted/awesome-selfhosted) [](https://ipcheck.ing) ๐Ÿ‡บ๐Ÿ‡ธ [English](README.md) | ๐Ÿ‡จ๐Ÿ‡ณ [็ฎ€ไฝ“ไธญๆ–‡](README_ZH.md) | ๐Ÿ‡ท๐Ÿ‡บ [ะ ัƒััะบะธะน](README_RU.md) | ๐Ÿ‡ซ๐Ÿ‡ท [Franรงais](README_FR.md) ๐Ÿ‘‰ Demo: [https://ipcheck.ing](https://ipcheck.ing) Feel free to bookmark the demo or deploy your own. [](https://hub.docker.com/r/jason5ng32/myip)
## ๐Ÿ‘€ 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](https://docs.ipcheck.ing)** * [Developer Guide](https://docs.ipcheck.ing/developer) โ€” deployment, configuration, architecture, and contributing * [Knowledge Base](https://docs.ipcheck.ing/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](https://docs.ipcheck.ing/developer/getting-started/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](https://docs.ipcheck.ing/developer/getting-started/reverse-proxy-and-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](https://docs.ipcheck.ing/developer/reference/environment-variables). ## ๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป 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: 1Password Greptile Sentry GitBook Cloudflare Project Alexandria --- ### 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](https://github.com/jason5ng32/MyIP/issues). 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. ---