?
untuk melihat daftar pintasan.Pastikan Anda telah menginstal Node.js.
Kloning kodenya:
git clone https://github.com/jason5ng32/MyIP.git
Instal dan bangun:
npm install && npm run build
Berlari:
npm start
Program ini akan berjalan pada port 18966.
Klik tombol 'Deploy to Docker' di bagian atas untuk menyelesaikan penerapan. Atau, gunakan shell berikut:
docker run -d -p 18966:18966 --name myip --restart always jason5ng32/myip:latest
Anda dapat menggunakan program ini tanpa menambahkan variabel lingkungan apa pun, namun jika Anda ingin menggunakan beberapa fitur lanjutan, Anda dapat menambahkan variabel lingkungan berikut:
Nama Variabel | Diperlukan | Nilai Bawaan | Keterangan |
---|---|---|---|
BACKEND_PORT | TIDAK | "11966" | Port yang berjalan dari bagian backend program |
FRONTEND_PORT | TIDAK | "18966" | Port yang berjalan di bagian frontend program |
SECURITY_RATE_LIMIT | TIDAK | "0" | Mengontrol jumlah permintaan yang dapat dibuat oleh IP ke server backend setiap 60 menit (disetel ke 0 tanpa batas) |
SECURITY_DELAY_AFTER | TIDAK | "0" | Mengontrol permintaan X pertama dari IP setiap 20 menit yang tidak tunduk pada batas kecepatan, dan setelah permintaan X, penundaan akan meningkat |
SECURITY_BLACKLIST_LOG_FILE_PATH | TIDAK | "logs/blacklist-ip.log" | Pengaturan jalur. Mencatat daftar IP yang memicu batas setelah SECURITY_RATE_LIMIT diaktifkan |
BING_MAP_API_KEY | TIDAK | "" | API Key untuk Bing Maps, digunakan untuk menampilkan lokasi IP pada peta |
ALLOWED_DOMAINS | TIDAK | "" | Domain yang diizinkan untuk diakses, dipisahkan dengan koma, digunakan untuk mencegah penyalahgunaan API backend |
IPCHECKING_API_KEY | TIDAK | "" | Kunci API untuk IPCheck.ing, digunakan untuk mendapatkan informasi geolokasi IP yang akurat |
IPINFO_API_TOKEN | TIDAK | "" | Token API untuk IPInfo.io, digunakan untuk memperoleh informasi geolokasi IP melalui IPInfo.io |
IPAPIIS_API_KEY | TIDAK | "" | API Key untuk IPAPI.is, digunakan untuk mendapatkan informasi geolokasi IP melalui IPAPI.is |
KEYCDN_USER_AGENT | TIDAK | "" | Nama domain bila menggunakan KeyCDN, harus mengandung awalan https. Digunakan untuk mendapatkan informasi alamat IP melalui KeyCDN |
CLOUDFLARE_API | TIDAK | "" | API Key untuk Cloudflare, digunakan untuk mendapatkan informasi sistem AS melalui Cloudflare |
MAC_LOOKUP_API_KEY | TIDAK | "" | Kunci API untuk Pencarian MAC, digunakan untuk mendapatkan informasi alamat MAC |
VITE_GOOGLE_ANALYTICS_ID | Ya | "" | ID Google Analytics, digunakan untuk melacak perilaku pengguna |
VITE_CURL_IPV4_DOMAIN | TIDAK | "" | Menyediakan domain IPv4 untuk CURL API kepada pengguna |
VITE_CURL_IPV6_DOMAIN | TIDAK | "" | Menyediakan domain IPv6 untuk CURL API kepada pengguna |
VITE_CURL_IPV64_DOMAIN | TIDAK | "" | Menyediakan domain dual-stack untuk CURL API kepada pengguna |
Perhatikan bahwa jika salah satu variabel lingkungan seri CURL tidak ada, API CURL tidak akan diaktifkan.
Buat variabel lingkungan:
cp .env.example .env
Ubah .env
, dan misalnya, tambahkan yang berikut ini:
BACKEND_PORT=11966
FRONTEND_PORT=18966
BING_MAP_API_KEY= " YOUR_KEY_HERE "
ALLOWED_DOMAINS= " example.com "
IPCHECKING_API= " YOUR_KEY_HERE "
Kemudian mulai ulang layanan backend.
Anda dapat menambahkan variabel lingkungan saat menjalankan Docker, misalnya:
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
Jika Anda menggunakan proxy untuk akses internet, pertimbangkan untuk menambahkan aturan ini ke konfigurasi proxy Anda (ubah sesuai klien Anda). Pengaturan ini memungkinkan Anda memeriksa IP asli dan IP saat menggunakan proxy:
# 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
Ketika versi 2.0 dirilis, saya mengatakan bahwa 70% kode untuk program ini tidak ditulis oleh saya, tetapi oleh ChatGPT. Setelah sekitar 90 interaksi, ditambah beberapa penyesuaian manual kecil, seluruh basis kode telah selesai.
Tentu saja arsitektur dan UI-nya tetap membutuhkan desain saya sendiri.
Dengan dirilisnya versi 3.0 dan versi berikutnya, proporsi kode yang ditulis dengan bantuan ChatGPT secara bertahap menurun, kini diperkirakan antara 40% dan 50%. Sebaliknya, dalam proses ini, saya beralih dari tidak memiliki pengetahuan tentang JavaScript dan Vue menjadi mampu memahami sebagian besar kode JS, dan sekarang saya dapat menulis beberapa sendiri.
Berkat AI, hal ini memberi saya, seorang manajer produk yang menganggur, kesempatan cepat untuk belajar pemrograman.