언어를 선택하세요 클라이언트를 설치하고 한 번 조회한 다음 응답 필드를 읽어 보세요.
JavaScript / TS JS / TS Python Go Rust Java C++ R .NET 언어 선택기에는 JavaScript가 필요합니다. 모든 클라이언트 저장소는 아래에서 확인할 수 있습니다.
TypeScript / JavaScript
enrichip 런타임 검증됨
요구 사항 ES 모듈 · Node 26에서 확인
패키지 버전 1.0.1 설치 npm install enrichip@1.0.1
IP 하나 조회 node lookup.mjsimport { queryIP } from "enrichip" ;
const info = await queryIP ( "1.1.1.1" );
console. log ( JSON . stringify (info, null , 2 )); 클라이언트 행동 이 예시는 배포된 npm 패키지를 사용합니다. IP 인수는 압축된 IPv6를 포함한 문자열을 허용합니다. 저장소 HEAD에는 더 엄격한 검증기가 있습니다. 클라이언트는 요청별 시간 제한을 제공하지 않습니다. 요청 설정을 직접 제어해야 하는 경우 HTTP 예시를 사용하세요.
요구 사항 Python 3.13 · Pydantic 2에서 확인
소스 리비전 9bd6552 설치 git clone https://github.com/ipqwery/ipapi-py.git
cd ipapi-py
git checkout 9bd655266582ec70d90d01296aa92784da5a27a5
python -m pip install "httpx==0.28.1" "pydantic>=2,<3"
IP 하나 조회 python lookup.pyfrom ipapi.client import IPAPIClient
client = IPAPIClient()
try :
info = client.query_ip( "1.1.1.1" )
print (info.model_dump_json( indent = 2 ))
finally :
client.client.close() 클라이언트 행동 소스 체크아웃에서 lookup.py를 실행하세요. 배포된 ipcore 0.1.2에는 패키지 메타데이터가 있지만 가져올 수 있는 ipapi 모듈은 없습니다. 이 설정에서는 대신 고정된 저장소를 사용합니다. 클라이언트는 Pydantic의 사용 중단된 parse_raw 메서드를 사용합니다. 래퍼에는 컨텍스트 관리자가 없으므로 사용 후 HTTP 클라이언트를 닫으세요. Go
github.com/ipqwery/ipapi-go 런타임 검증됨
요구 사항 Go 1.24.2 이상
소스 리비전 fc7efc4 설치 go get github.com/ipqwery/ipapi-go@fc7efc494870418b9f1143f642aba8f5802ebf9f
IP 하나 조회 go run .package main
import (
" fmt "
" log "
ipapi " github.com/ipqwery/ipapi-go "
)
func main () {
info, err := ipapi. QueryIP ( "1.1.1.1" )
if err != nil {
log. Fatal (err)
}
fmt. Println (info.IP)
if info.ISP != nil {
fmt. Println (info.ISP.ASN)
}
} 클라이언트 행동 Go 모듈 안에서 설치 명령을 실행하세요. QueryIP는 중첩된 IPInfo 값을 반환하며, HTTP 응답이 성공하지 못하면 오류를 반환합니다. 클라이언트에는 호출별 시간 제한이 없습니다. 결과를 다시 직렬화하면 omitempty 태그가 false와 0 값을 생략하지만, 파싱된 값은 유지됩니다.
요구 사항 Rust 2021 에디션 · Tokio
소스 리비전 2313f1f 설치 cargo add ipapi --git https://github.com/ipqwery/ipapi-rust --rev 2313f1f6028803d5fcffc3332bc3cfda8a61df7f
cargo add tokio --features macros,rt-multi-thread,time
IP 하나 조회 cargo runuse std :: time :: Duration ;
#[tokio :: main]
async fn main () -> Result <(), Box < dyn std :: error :: Error >> {
let info = tokio :: time :: timeout (
Duration :: from_secs ( 5 ),
ipapi :: query_ip ( "1.1.1.1" ),
) .await?? ;
println! ( "{}" , info . ip);
if let Some (isp) = info . isp {
println! ( "{:?}" , isp . asn);
}
Ok (())
} 클라이언트 행동 Cargo 프로젝트에 고정된 소스 리비전을 설치하세요. 문서에 명시된 crates.io 버전은 사용할 수 없습니다. 이 예시는 5초 Tokio 시간 제한으로 조회 시간을 제한합니다. 선택적 중첩 필드는 Option을 사용합니다. 이 클라이언트는 HTTP 상태를 먼저 확인하지 않고 응답을 디코딩합니다. 오류 응답 처리에는 HTTP 참조를 사용하세요.
요구 사항 JDK 21 · Gradle 래퍼
소스 리비전 5e303a5 설치 git clone https://github.com/ipqwery/ipapi-java.git
cd ipapi-java
git checkout 5e303a5dd2a373ae5b56a1f53139d8b8ca7f6761
./gradlew :app:build
IP 하나 조회 import ipapi.java.Ipapi;
import ipapi.java.IPInfo;
public class Lookup {
public static void main ( String [] args ) throws Exception {
IPInfo info = Ipapi. queryIp ( "1.1.1.1" );
System.out. println (info. getIp ());
if (info. getIsp () != null ) {
System.out. println (info. getIsp (). getAsn ());
}
}
} 클라이언트 행동 JDK 21로 고정된 소스를 빌드하세요. 이 예시는 빌드된 라이브러리가 클래스 경로에 있는 사용 프로젝트에 넣어야 합니다. 여기서는 런타임 검증을 하지 않았습니다. 소스는 API 키 없이 ipapi.java의 정적 메서드를 사용합니다. README의 io.ipapi 네임스페이스 및 API 키 생성자는 이 리비전과 일치하지 않습니다. 디코딩 전에 HTTP 상태를 확인하지 않습니다.
요구 사항 C++20 · CMake · libcurl
소스 리비전 a5ae87c
IP 하나 조회 표준 HTTP 요청 사용 현재 C++ 콜백 및 위험 필드 매핑은 수정이 필요합니다. 네이티브 HTTP 요청은 API의 완전한 응답을 반환합니다.
HTTPS 엔드포인트 보기 클라이언트 행동 현재 클라이언트는 각 libcurl 응답 청크를 완전한 JSON 문서로 파싱합니다. 여러 청크로 나뉜 응답은 올바르게 디코딩되지 않을 수 있습니다. 위험 필드 매핑에서는 is_datacenter와 risk_score를 설정하지 않습니다. 내 IP 콜백도 호출자와 다른 결과 유형을 사용합니다. 이 경로가 수정될 때까지 표준 HTTP 요청을 사용하세요.
요구 사항 R 4.1 이상
소스 리비전 79cd732 설치 install.packages ( "remotes" )
remotes :: install_github ( "ipqwery/ipapi-r@79cd73249bd1f8fa41d950bc37ba5b9f6ee6d2d9" )
IP 하나 조회 Rscript lookup.Rlibrary ( ipapi )
info <- query_ips ( "1.1.1.1" )
print ( info [ , c ( "ip" , "asn" , "country_code" )]) 클라이언트 행동 query_ips에 주소 하나만 전달하세요. 여러 주소가 포함된 벡터는 기존 일괄 조회 경로를 사용하며, API가 이를 거부합니다. 결과는 열이 평탄화된 데이터 프레임입니다. 이 고정된 소스 예시는 여기서 런타임 검증을 하지 않았습니다.
요구 사항 .NET 9+ · .NET 10에서 확인
패키지 버전 2024.12.23.223133 설치 dotnet add package IpApi --version 2024.12.23.223133
IP 하나 조회 dotnet runusing IpApi ;
using Microsoft . Extensions . DependencyInjection ;
using System . Text . Json ;
var services = new ServiceCollection ();
services. AddIpApiClient ();
using var provider = services. BuildServiceProvider ();
var client = provider. GetRequiredService < IIApiClient >();
using var timeout = new CancellationTokenSource (TimeSpan. FromSeconds ( 5 ));
var info = await client. QueryIpAsync ( "1.1.1.1" , timeout.Token);
if (info is null ) throw new InvalidOperationException ( "Empty IP response" );
Console. WriteLine (JsonSerializer. Serialize (info)); 클라이언트 행동 .NET 콘솔 프로젝트에서 실행하세요. 등록된 인터페이스는 처음에 I가 두 개 있는 IIApiClient이며, README의 IIpApiClient라는 이름과 다릅니다. 응답은 중첩된 Isp, Location 및 Risk 객체를 사용합니다. 요청 시간을 제한하려면 취소 토큰을 전달하세요. 기존 다중 IP 메서드는 API에서 지원하지 않습니다. 통합 전 확인 사항 단일 IP 요청 조회마다 주소 하나를 사용하세요. 일부 클라이언트는 아직 일괄 메서드를 제공하지만 API는 일괄 요청을 거부합니다. 일괄 조회 정책 읽기 내 IP 응답 루트 엔드포인트는 기본적으로 연결하는 프로세스의 공인 IP를 텍스트로 반환합니다. 완전한 내 IP JSON 응답에는 다음을 사용하세요: HTTP 예시
검증 범위 런타임 검증됨은 표시된 패키지 또는 소스 리비전으로 단일 IP 조회를 실행했다는 뜻입니다. 소스 예시는 코드에 비추어 검토했지만 실행하지는 않았습니다. 소스 리비전은 배포된 패키지와 다를 수 있습니다. 네이티브 HTTP를 선호하시나요? 시간 초과 및 HTTP 오류 처리가 포함된 요청을 복사하세요.