?
바로가기 목록을 보려면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" | 속도 제한이 적용되지 않는 IP의 첫 번째 X 요청을 20분마다 제어하고, X 요청 후에는 지연이 증가합니다. |
SECURITY_BLACKLIST_LOG_FILE_PATH | 아니요 | "logs/blacklist-ip.log" | 경로 설정. SECURITY_RATE_LIMIT가 활성화된 후 제한을 트리거한 IP 목록을 기록합니다. |
BING_MAP_API_KEY | 아니요 | "" | 지도에 IP 위치를 표시하는 데 사용되는 Bing Maps용 API 키 |
ALLOWED_DOMAINS | 아니요 | "" | 백엔드 API의 오용을 방지하기 위해 사용되는 액세스가 허용된 도메인(쉼표로 구분) |
IPCHECKING_API_KEY | 아니요 | "" | 정확한 IP 지리적 위치 정보를 얻는 데 사용되는 IPCheck.ing용 API 키 |
IPINFO_API_TOKEN | 아니요 | "" | IPInfo.io를 통해 IP 지리적 위치 정보를 얻는 데 사용되는 IPInfo.io용 API 토큰 |
IPAPIIS_API_KEY | 아니요 | "" | IPAPI.is를 통해 IP 지리적 위치 정보를 얻는 데 사용되는 IPAPI.is용 API 키 |
KEYCDN_USER_AGENT | 아니요 | "" | KeyCDN을 사용할 때 도메인 이름에는 https 접두사가 포함되어야 합니다. KeyCDN을 통해 IP 주소 정보를 얻기 위해 사용됩니다. |
CLOUDFLARE_API | 아니요 | "" | Cloudflare를 통해 AS 시스템 정보를 얻는 데 사용되는 Cloudflare용 API 키 |
MAC_LOOKUP_API_KEY | 아니요 | "" | MAC 주소 정보를 얻는 데 사용되는 MAC 조회용 API 키 |
VITE_GOOGLE_ANALYTICS_ID | 예 | "" | 사용자 행동을 추적하는 데 사용되는 Google Analytics ID |
VITE_CURL_IPV4_DOMAIN | 아니요 | "" | 사용자에게 CURL API용 IPv4 도메인을 제공합니다. |
VITE_CURL_IPV6_DOMAIN | 아니요 | "" | 사용자에게 CURL API용 IPv6 도메인을 제공합니다. |
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 덕분에 실직한 제품 관리자인 나에게 프로그래밍을 빠르게 배울 수 있는 기회가 생겼습니다.