Linux
자바스크립트를 사용하여 IP 정보를 가져올 수 있는 다양한 API
게으른냥이
2025. 3. 11. 12:13
✅ 1. ipify (https://www.ipify.org)
https://api64.ipify.org?format=json (IPv6 지원)
https://api.ipify.org?format=json (IPv4 전용)
- 제공 정보: 공용 IP 주소
- 무료 사용 가능
- 단점: IP 주소만 제공, 추가 정보 없음
예제 코드
fetch("https://api64.ipify.org?format=json")
.then(response => response.json())
.then(data => console.log("공용 IP:", data.ip))
.catch(error => console.error("IP 정보 가져오기 실패:", error));
✅ 2. ipinfo.io (https://ipinfo.io)
https://ipinfo.io/json?token=YOUR_ACCESS_TOKEN
- 제공 정보: 공용 IP, 도시, 지역, 국가, ISP, 좌표 등
- 무료 버전: 일일 50회 요청 제한 (더 많은 요청은 유료)
- 단점: 무료 버전은 요청 제한이 있음
예제 코드
fetch("https://ipinfo.io/json?token=YOUR_ACCESS_TOKEN")
.then(response => response.json())
.then(data => console.log("IP 정보:", data))
.catch(error => console.error("IP 정보 가져오기 실패:", error));
응답 예시:
{
"ip": "123.45.67.89",
"city": "Seoul",
"region": "Seoul",
"country": "KR",
"loc": "37.5665,126.9780",
"org": "AS12345 Some ISP"
}
✅ 3. ip-api.com (https://ip-api.com)
- 제공 정보: 공용 IP, 도시, 국가, ISP, 위치 정보 (위도, 경도)
- 무료 사용 가능 (상업적 사용은 유료)
- 단점: 너무 많은 요청 시 차단 가능
예제 코드
fetch("http://ip-api.com/json/")
.then(response => response.json())
.then(data => console.log("IP 정보:", data))
.catch(error => console.error("IP 정보 가져오기 실패:", error));
응답 예시:
{
"query": "123.45.67.89",
"status": "success",
"country": "South Korea",
"countryCode": "KR",
"region": "11",
"regionName": "Seoul",
"city": "Seoul",
"zip": "100-011",
"lat": 37.5665,
"lon": 126.9780,
"timezone": "Asia/Seoul",
"isp": "Some ISP",
"org": "Some Org",
"as": "AS12345 Some ISP"
}
✅ 4. geolocation-db.com (https://geolocation-db.com)
https://geolocation-db.com/json/
- 제공 정보: 공용 IP, 국가, 도시, 위도, 경도 등
- 무료 사용 가능
- 단점: ISP 정보 제공 안 함
예제 코드
fetch("https://geolocation-db.com/json/")
.then(response => response.json())
.then(data => console.log("IP 정보:", data))
.catch(error => console.error("IP 정보 가져오기 실패:", error));
응답 예시:
{
"IPv4": "123.45.67.89",
"country_name": "South Korea",
"city": "Seoul",
"latitude": 37.5665,
"longitude": 126.9780
}
✅ 5. ipgeolocation.io (https://ipgeolocation.io)
https://api.ipgeolocation.io/ipgeo?apiKey=YOUR_API_KEY
- 제공 정보: 공용 IP, ISP, 도시, 지역, 국가, 우편번호, 시간대 등
- 무료 버전: 일일 30,000회 요청 가능
- 단점: API 키 필요
예제 코드
fetch("https://api.ipgeolocation.io/ipgeo?apiKey=YOUR_API_KEY")
.then(response => response.json())
.then(data => console.log("IP 정보:", data))
.catch(error => console.error("IP 정보 가져오기 실패:", error));
{
"ip": "123.45.67.89",
"continent_name": "Asia",
"country_name": "South Korea",
"region_name": "Seoul",
"city": "Seoul",
"zip_code": "100-011",
"latitude": 37.5665,
"longitude": 126.9780,
"isp": "Some ISP"
}
✅ 정리 (어떤 API를 선택할까?)
API제공 정보무료 요청 제한단점
| ipify | 공용 IP 주소 | 무제한 | IP 주소 외 정보 없음 |
| ipinfo.io | IP, 도시, 국가, ISP, 위치 | 일일 50회 | API 키 필요 |
| ip-api.com | IP, 도시, 국가, ISP, 위치 | 무제한 | 과도한 요청 시 차단 가능 |
| geolocation-db.com | IP, 도시, 국가, 위도, 경도 | 무제한 | ISP 정보 없음 |
| ipgeolocation.io | IP, ISP, 도시, 국가, 우편번호, 시간대 | 일일 30,000회 | API 키 필요 |
✅ 결론
- 단순히 공용 IP만 필요하면 → ipify (무제한 무료)
- 위치 및 ISP 정보도 필요하면 → ipinfo.io 또는 ip-api.com
- API 키 없이 위치 정보까지 필요하면 → ip-api.com
- 기업용 대량 API가 필요하면 → ipgeolocation.io