?
เพื่อดูรายการทางลัดตรวจสอบให้แน่ใจว่าคุณได้ติดตั้ง Node.js แล้ว
โคลนรหัส:
git clone https://github.com/jason5ng32/MyIP.git
ติดตั้งและสร้าง:
npm install && npm run build
วิ่ง:
npm start
โปรแกรมจะทำงานบนพอร์ต 18966
คลิกปุ่ม 'ปรับใช้กับ Docker' ที่ด้านบนเพื่อดำเนินการปรับใช้ให้เสร็จสมบูรณ์ หรือใช้เชลล์ต่อไปนี้:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
คุณสามารถใช้โปรแกรมได้โดยไม่ต้องเพิ่มตัวแปรสภาพแวดล้อมใดๆ แต่ถ้าคุณต้องการใช้คุณสมบัติขั้นสูง คุณสามารถเพิ่มตัวแปรสภาพแวดล้อมต่อไปนี้:
ชื่อตัวแปร | ที่จำเป็น | ค่าเริ่มต้น | คำอธิบาย |
---|---|---|---|
BACKEND_PORT | เลขที่ | "11966" | พอร์ตที่ทำงานอยู่ของส่วนแบ็กเอนด์ของโปรแกรม |
FRONTEND_PORT | เลขที่ | "18966" | พอร์ตที่กำลังรันอยู่ของส่วนหน้าของโปรแกรม |
SECURITY_RATE_LIMIT | เลขที่ | "0" | ควบคุมจำนวนคำขอที่ IP สามารถส่งไปยังเซิร์ฟเวอร์แบ็กเอนด์ทุกๆ 60 นาที (ตั้งค่าเป็น 0 โดยไม่จำกัด) |
SECURITY_DELAY_AFTER | เลขที่ | "0" | ควบคุมคำขอ X แรกจาก IP ทุกๆ 20 นาทีที่ไม่อยู่ภายใต้ขีดจำกัดความเร็ว และหลังจากคำขอ X ความล่าช้าจะเพิ่มขึ้น |
SECURITY_BLACKLIST_LOG_FILE_PATH | เลขที่ | "logs/blacklist-ip.log" | การตั้งค่าเส้นทาง บันทึกรายการ IP ที่ทำให้เกิดขีดจำกัดหลังจากเปิดใช้งาน SECURITY_RATE_LIMIT |
BING_MAP_API_KEY | เลขที่ | "" | คีย์ API สำหรับ Bing Maps ใช้เพื่อแสดงตำแหน่งของ IP บนแผนที่ |
ALLOWED_DOMAINS | เลขที่ | "" | โดเมนที่อนุญาตสำหรับการเข้าถึง คั่นด้วยเครื่องหมายจุลภาค ใช้เพื่อป้องกันการใช้ API แบ็กเอนด์ในทางที่ผิด |
IPCHECKING_API_KEY | เลขที่ | "" | คีย์ API สำหรับ IPCheck.ing ใช้เพื่อรับข้อมูลตำแหน่งทางภูมิศาสตร์ IP ที่แม่นยำ |
IPINFO_API_TOKEN | เลขที่ | "" | API Token สำหรับ IPInfo.io ใช้เพื่อรับข้อมูลตำแหน่งทางภูมิศาสตร์ของ IP ผ่าน IPInfo.io |
IPAPIIS_API_KEY | เลขที่ | "" | คีย์ API สำหรับ IPAPI.is ใช้เพื่อรับข้อมูลตำแหน่งทางภูมิศาสตร์ของ IP ผ่าน IPAPI.is |
KEYCDN_USER_AGENT | เลขที่ | "" | ชื่อโดเมนเมื่อใช้ KeyCDN ต้องมีคำนำหน้า https ใช้เพื่อรับข้อมูลที่อยู่ IP ผ่าน KeyCDN |
CLOUDFLARE_API | เลขที่ | "" | คีย์ API สำหรับ Cloudflare ใช้เพื่อรับข้อมูลระบบ AS ผ่าน Cloudflare |
MAC_LOOKUP_API_KEY | เลขที่ | "" | คีย์ API สำหรับการค้นหา MAC ใช้เพื่อรับข้อมูลที่อยู่ MAC |
VITE_GOOGLE_ANALYTICS_ID | ใช่ | "" | รหัส Google Analytics ใช้เพื่อติดตามพฤติกรรมของผู้ใช้ |
VITE_CURL_IPV4_DOMAIN | เลขที่ | "" | จัดเตรียมโดเมน IPv4 สำหรับ CURL API ให้กับผู้ใช้ |
VITE_CURL_IPV6_DOMAIN | เลขที่ | "" | จัดเตรียมโดเมน IPv6 สำหรับ CURL API ให้กับผู้ใช้ |
VITE_CURL_IPV64_DOMAIN | เลขที่ | "" | จัดเตรียมโดเมนแบบสแต็กคู่สำหรับ CURL API ให้กับผู้ใช้ |
โปรดทราบว่าหากไม่มีตัวแปรสภาพแวดล้อมซีรีส์ CURL ใดๆ CURL API จะไม่เปิดใช้งาน
สร้างตัวแปรสภาพแวดล้อม:
cp .env.example .env
ปรับเปลี่ยน .env
และยกตัวอย่าง เพิ่มรายการต่อไปนี้:
BACKEND_PORT=11966
FRONTEND_PORT=18966
BING_MAP_API_KEY= " YOUR_KEY_HERE "
ALLOWED_DOMAINS= " example.com "
IPCHECKING_API= " YOUR_KEY_HERE "
จากนั้นรีสตาร์ทบริการแบ็กเอนด์
คุณสามารถเพิ่มตัวแปรสภาพแวดล้อมได้เมื่อเรียกใช้ Docker เช่น:
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
หากคุณใช้พร็อกซีสำหรับการเข้าถึงอินเทอร์เน็ต ให้พิจารณาเพิ่มกฎนี้ในการกำหนดค่าพร็อกซีของคุณ (แก้ไขตามไคลเอ็นต์ของคุณ) การตั้งค่านี้ช่วยให้คุณตรวจสอบทั้ง IP จริงและ IP ของคุณเมื่อใช้พร็อกซี:
# IP Testing
IP-CIDR,1.0.0.1/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
เมื่อเวอร์ชัน 2.0 เปิดตัว ฉันบอกว่า 70% ของโค้ดสำหรับโปรแกรมนี้ไม่ได้เขียนโดยฉัน แต่เขียนโดย ChatGPT หลังจากการโต้ตอบประมาณ 90 ครั้ง บวกกับการปรับเปลี่ยนด้วยตนเองเล็กน้อย โค้ดเบสทั้งหมดก็เสร็จสมบูรณ์
แน่นอนว่าสถาปัตยกรรมและ UI ยังคงต้องมีการออกแบบของฉันเอง
ด้วยการเปิดตัวเวอร์ชัน 3.0 และเวอร์ชันต่อๆ ไป สัดส่วนของโค้ดที่เขียนด้วยความช่วยเหลือของ ChatGPT ก็ค่อยๆ ลดลง ซึ่งขณะนี้คาดว่าจะอยู่ระหว่าง 40% ถึง 50% ในทางตรงกันข้าม ในกระบวนการนี้ ฉันเปลี่ยนจากการไม่มีความรู้ JavaScript และ Vue มาเป็นสามารถเข้าใจโค้ด JS ส่วนใหญ่ได้ และตอนนี้ฉันสามารถเขียนโค้ดบางส่วนได้ด้วยตัวเอง
ต้องขอบคุณ AI ที่ทำให้ฉันซึ่งเป็นผู้จัดการผลิตภัณฑ์ว่างงาน มีโอกาสเรียนรู้การเขียนโปรแกรมอย่างรวดเร็ว