IPv6과 IPv4를 통한 API 연결

안녕하세요,

API에 제때 접근하는 데 문제가 있습니다. 다음 URL에 접근하고 있습니다:
https://community.tenxguitar.com/c/7.json

API 키와 사용자를 생성했고, 지금까지는 모두 정상적으로 보입니다.

Postman에서 올바른 자격 증명으로 테스트하면 예상대로 즉시 데이터가 반환됩니다.

문제는 Postman 이외의 환경, 예를 들어 제 코드에서 접근하려고 할 때 발생합니다. 데이터가 반환되기는 하지만, 수 분(MINUTES)이 걸립니다.

터미널에서도 다음과 같은 명령어로 동일한 문제가 발생합니다:

wget --no-check-certificate --quiet \
  --method GET \
  --timeout=0 \
  --header 'Api-Key: correct-api-key-here' \
  --header 'Api-Username: <correct user name here>' \
   'https://community.tenxguitar.com/c/7.json'

Python 코드와 동일한 동작을 합니다. 포럼에서 이 문제를 유발할 수 있는 구성 설정이 있다고 생각하지 않습니다. 조언이나 도움을 주실 수 있는 분 계신가요?

감사합니다!

Postman과 예시 명령줄 코드가 모두 동일한 컴퓨터에서 실행되고 있나요?

wget 대신 curl을 세 번째 비교용으로 시도해 보셨나요?

wget에 -4 옵션을 추가하면 결과가 즉시 반환되나요?

아니라면, -v 옵션을 추가했을 때의 (개인정보를 제거한) 출력을 공유해 주시겠어요?

네, 같은 컴퓨터에 있습니다.

Michael,

-4 옵션(제가 잘 모르는 옵션)을 시도해 보았더니 즉시 예상대로 작동했습니다. 이후 -v 옵션을 시도해 보니, 제 이해가 맞다면 SSL 타임아웃으로 보입니다. 아래는 -v 출력 결과입니다. -4 옵션에 대해 좀 더 자세히 설명해 주실 수 있을까요? 감사합니다. 링크 게시 제한 때문에 일부 내용을 삭제해야 했습니다.

community.tenxguitar.com(community.tenxguitar.com) 이름 해석 중… 2001:470:1:59e::139, 66.220.12.139
에 연결 중
()|2001:470:1:59e::139|:443… 실패: 연결 시간 초과.
()|66.220.12.139|:443에 연결 중… 연결됨.
HTTP 요청 전송, 응답 대기 중… 200 OK
길이: 지정되지 않음 [application/json]
저장 위치: ‘7.json.4’

현재 사용자의 컴퓨터에는 IPv4와 IPv6 주소가 모두 설정되어 있지만, IPv6 연결이 끊어져 있어 IPv6를 통한 연결 시도가 시간 초과되고 있습니다.

wget(그리고 아마도 사용자의 Python 코드도)는 먼저 IPv6을 시도하다가 시간 초과가 되면 IPv4로 성공적으로 연결합니다. 하지만 -4 옵션은 IPv4 사용으로 강제하기 때문에 이 경우 작동합니다.

Postman은 아마도 IPv4만 사용하거나, IPv4와 IPv6을 동시에 시도하여 먼저 연결된 쪽을 사용하는 것일 가능성이 높습니다.

네트워크에서 IPv6 연결이 작동하지 않는 이유를 조사해야 합니다. 즉시 실패하는 것이라도, wget이 IPv6을 기다리지 않고 즉시 IPv4를 통해 시도할 수 있으므로 더 나은 방법입니다.

(또는, 연결을 IPv4 전용으로 강제할 수 있습니다)

감사합니다, 선생님! 흥미롭네요. 한번 살펴볼게요. 다시 한번 감사합니다.