Pages

Wednesday, 28 August 2024

开源的IP信息查看工具-MyIP

 

MyIP一款国人开源的 IP 信息查看工具,基于Vue编写,遵守MIT开源协议。IP 归属地来源信息库来自: Upai, TaoBao, Cloudflare ,IPify等。功能包括:查看IP、IP 信息(代理前后)、检查 DNS 泄露、检查 WebRTC 连接、测试网站可用性等。


功能特色:

    🖥️ 看本机 IP:从多个 IPv4 和 IPv6 来源检测显示本机的 IP

    🕵️ 看 IP 信息:显示所有 IP 的相关信息,包括国家、地区、ASN、地理位置等

    🚦 可用性检测:检测一些网站的可用性:Google, Github, Youtube, 网易, 百度等

    🚥 WebRTC 检测:查看使用 WebRTC 连接时使用的 IP

    🛑 DNS 泄露检测:查看 DNS 出口信息,以便查看在 VPN/代理的情况下,是否存在 DNS 泄露隐私的风险

    🚀 网速测试:利用边缘网络进行网速测试

    🚏 代理规则测试:配合代理软件的规则设置,测试规则设置是否正常

    ⏱️ 全球延迟测试:从分布在全球的多个服务器进行延迟测试,了解你与全球网络的连接速度

    📡 MTR 测试:从分布在全球的多个服务器进行 MTR 测试,了解你与全球的连接路径

    🔦 DNS 解析器:从多个渠道对域名进行 DNS 解析,获取实时的解析结果,可用于污染判断

    🚧 封锁测试:检查特定的网站在部分国家是否被封锁

    📓 Whois 查询:对域名或 IP 进行 whois 信息查询

    📀 MAC 地址查询:查询物理地址的归属信息

    🌗 暗黑模式:根据系统设置自动切换暗黑/白天模式,也可以手动切换

    📱 简约模式:为移动版提供的专门模式,缩短页面长度,快速查看最重要的信息

    🔍 查任意 IP 信息:可以通过小工具查询任意 IP 的信息

    📲 支持 PWA:可以添加为手机应用以及电脑里的桌面应用,方便使用

    ⌨️ 支持快捷键:可以随时输入 ? 查看快捷键菜单

    🌍 根据可用性检测结果,返回目前是否可以访问全世界网络的提示

   支持中文、英文、法文

作者称V2.0 时这个程序的 70% 的代码是通过 ChatGPT 写的,外加一些细微的手动修改,完成了全部代码。随着 V3.0 及后续的代码发布,ChatGPT写代码的比例逐渐下降,最新版本在 40% – 50% 之间。

官网:https://ipcheck.ing/

源代码:https://github.com/jason5ng32/MyIP

--------------------------------------------------------------------------------------------

         The best IP Toolbox. Easy to check what's your IPs, IP geolocation, check for DNS leaks, examine WebRTC connections, speed test, ping test, MTR test, check website availability, whois search and more! || 🇨🇳 可能是最好用的IP工具箱。轻松检查你的 IP,IP 地理位置,检查DNS泄漏,检查 WebRTC 连接,速度测试,ping 测试,MTR测试,检查网站可用性,查询 Whois 信息等等。

ipcheck.ing

English | 🇨🇳 简体中文 | 🇫🇷 Français

👉 Demo: https://ipcheck.ing

Feel free to bookmark the demo or deploy your own.

Deploy with Docker

👀 Main Features

  • 🖥️ View Your IPs: Detects and displays your local IPs, sourcing from multiple IPv4 and IPv6 providers.
  • 🕵️ IP Information: Presents detailed information for all IP addresses, including country, region, ASN, geographic location, and more.
  • 🚦 Availability Check: Tests the accessibility of various websites, such as Google, GitHub, YouTube, ChatGPT, and others.
  • 🚥 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
  • 🌗 Dark Mode: Automatically toggles between dark and daylight modes based on system settings, with an option for manual switching.
  • 📱 Minimalist Mode: A mobile-optimized mode that shortens page length for quick access to essential information..
  • 🔍 Search IP Information: Provides a tool for querying information about any IP address.
  • 📲 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, and French support.

📕 How to Use

Deploying in a Nodejs Environment

Make sure you have Node.js installed.

Clone the code:

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

Install and build:

npm install && npm run build

Run:

npm 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:

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

📚 Environment Variable

You can use the program without adding any environment variables, but if you want to use some advanced features, you can add the following environment variables:

Variable Name Required Default Value Description
BACKEND_PORT No "11966" The running port of the backend part of the program
FRONTEND_PORT No "18966" The running port of the frontend part of the program
SECURITY_RATE_LIMIT No "0" Controls the number of requests an IP can make to the backend server every 60 minutes (set to 0 for no limit)
SECURITY_DELAY_AFTER No "0" Controls the first X requests from an IP every 20 minutes that are not subject to speed limits, and after X requests, the delay will increase
SECURITY_BLACKLIST_LOG_FILE_PATH No "logs/blacklist-ip.log" Path setting. Records the list of IPs that triggered the limit after SECURITY_RATE_LIMIT is enabled
BING_MAP_API_KEY No "" API Key for Bing Maps, used to display the location of the IP on a map
ALLOWED_DOMAINS No "" Allowed domains for access, separated by commas, used to prevent misuse of the backend API
IPCHECKING_API_KEY No "" API Key for IPCheck.ing, used to obtain accurate IP geolocation information
IPINFO_API_TOKEN No "" API Token for IPInfo.io, used to obtain IP geolocation information through IPInfo.io
IPAPIIS_API_KEY No "" API Key for IPAPI.is, used to obtain IP geolocation information through IPAPI.is
KEYCDN_USER_AGENT No "" The domain name when using KeyCDN, must contain https prefix. Used to obtain IP address information through KeyCDN
CLOUDFLARE_API No "" API Key for Cloudflare, used to obtain AS system information through Cloudflare
MAC_LOOKUP_API_KEY No "" API Key for MAC Lookup, used to obtain MAC address information
VITE_GOOGLE_ANALYTICS_ID Yes "" Google Analytics ID, used to track user behavior

Using Environment Variables in a Node Environment

Create environment variables:

cp .env.example .env

Modify .env, and for example, add the following:

BACKEND_PORT=11966
FRONTEND_PORT=18966
BING_MAP_API_KEY="YOUR_KEY_HERE"
ALLOWED_DOMAINS="example.com"
IPCHECKING_API="YOUR_KEY_HERE"

Then restart the backend service.

Using Environment Variables in Docker

You can add environment variables when running Docker, for example:

docker run -d -p 18966:18966 \
  -e BING_MAP_API_KEY="YOUR_KEY_HERE" \
  -e ALLOWED_DOMAINS="example.com" \
  -e IPCHECKING_API="YOUR_TOKEN_HERE" \
  --name myip \
  jason5ng32/myip:latest

👩🏻‍💻 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.1/32,DIRECT,no-resolve
IP-CIDR6,2606:4700:4700::1111/128,DIRECT,no-resolve
DOMAIN-SUFFIX,ipify.org,Proxy
# 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

😶‍🌫️ Additional Notes

When version 2.0 was released, I said that 70% of the code for this program was not written by me, but by ChatGPT. After about 90 interactions, plus some minor manual adjustments, the entire codebase was completed.

Of course, the architecture and UI still required my own design.

With the release of version 3.0 and subsequent versions, the proportion of code written with the help of ChatGPT has gradually decreased, now estimated to be between 40% and 50%. On the contrary, in this process, I went from having no knowledge of JavaScript and Vue to being able to understand most of the JS code, and I can now write some on my own.

Thanks to AI, it has given me, an unemployed product manager, a rapid opportunity to learn programming.

from https://github.com/jason5ng32/MyIP


No comments:

Post a Comment