GeoIp
접속 IP → 국가/도시 로컬 판정 (서버 공용 DB-IP Lite, 토큰·네트워크 없음)
상태
| 항목 | 값 |
|---|---|
| Layer | foundation |
| Tier | L0 |
| Status | released |
| Version | 1.2.0 |
| 가격 | Free (free) |
| 카테고리 | 보안 / 감사 |
| 활성화 | 항상 부트 (core-binding — 화면 없는 Core 계약 공급) |
개요
GeoIp 는 Core 의 GeoIpResolverInterface 구현을 바인딩하는 플러그인입니다. 화면이 없고 모든 프로젝트에서 항상 부트하며, 실제 사용 여부는 설정(GEOIP_PROVIDER)과 데이터 파일 유무로 정해집니다. 회원 상세의 접속 위치, 지역별 열람 판정 등 소비 기능은 인터페이스에만 의존합니다.
기본 provider — 로컬 DB-IP Lite City
- 서버마다 DB-IP Lite City 파일 한 벌을 두고, 서버 갱신 작업이 매월 새 판으로 교체합니다. 프로젝트 컨테이너는 이 파일을 읽기 전용으로 씁니다.
- 외부 API 토큰이나 요청마다의 네트워크 조회가 없습니다. 파일이 교체되면 다음 조회부터 새 파일을 읽습니다.
- 파일이나 조회 라이브러리가 없으면, 또는 사설·잘못된 IP 이면 "국가 모름(null)" 으로 답합니다. 지역 제한이 있는 기능은 이 경우를 차단으로 다룹니다.
- 국가명은 현재 언어(한국어·일본어·중국어·영어)로, 도시명은 영어로 제공됩니다.
라이선스와 출처 표시
| 구성 | 라이선스 | 의무 |
|---|---|---|
maxmind-db/reader (조회 라이브러리) | Apache-2.0 | 없음 |
| DB-IP Lite City (데이터) | CC BY 4.0 | 결과를 쓰는 화면에 출처 표시 |
출처 표시는 Blade 컴포넌트로 넣습니다.
<x-geoip::attribution />
DB-IP 가 요구하는 "IP Geolocation by DB-IP" 링크를 그대로 출력합니다. 도시 수준 위치는 개인정보 민감도가 높으므로, 판정 결과를 저장하는 기능을 만들 때는 개인정보 카탈로그에 등록합니다.
다른 provider
| provider | 설명 |
|---|---|
api | apis.how 중앙 GeoIP API 를 호출합니다(서버 토큰 필요). |
maxmind | MaxMind GeoLite2 파일을 직접 둡니다. 무료 GeoLite 라이선스는 내부 업무 목적만 허용하므로, 최종 사용자에게 제공하는 서비스에는 상업 라이선스가 필요할 수 있습니다. |
null | 판정하지 않습니다. |
설정
| 환경 변수 |
|---|