Conexão de API via IPv6 vs. IPv4

Olá a todos,

Tenho um problema ao acessar a API de forma oportuna. Estou acessando a seguinte URL:
https://community.tenxguitar.com/c/7.json

Criei uma chave de API e um usuário, e tudo parece estar correto até agora.

Quando faço o teste pelo Postman com as credenciais adequadas, ele retorna imediatamente com os dados, como eu esperava.

O problema ocorre quando tento acessá-lo de outro lugar que não seja o Postman… como no meu código. Leva MINUTOS para retornar, mas eventualmente retorna com os dados.

O mesmo problema ocorre no terminal com o seguinte comando:

wget --no-check-certificate --quiet \
  --method GET \
  --timeout=0 \
  --header 'Api-Key: correct-api-key-here' \
  --header 'Api-Username: <nome de usuário correto aqui>' \
   'https://community.tenxguitar.com/c/7.json'

O comportamento é o mesmo do meu código Python. Não acredito que tenha alguma configuração que afete isso (no fórum). Alguém pode, por favor, orientar ou me ajudar?

Obrigado!

O Postman e o seu exemplo de código de linha de comando estão sendo executados na mesma máquina?

Você tentou o curl para uma terceira comparação, em vez do wget?

Os resultados são retornados imediatamente se você adicionar a opção -4 ao wget?

Se não, você pode postar a saída (com dados sensíveis omitidos) ao adicionar a opção -v?

Sim, está na mesma máquina.

Michael,

Tentei a opção -4 (com a qual não estou familiarizado) e funcionou imediatamente e como esperado. Em seguida, tentei a opção -v e, se li corretamente, parece ser um tempo limite de SSL. Aqui está a saída da opção -v. Você pode elaborar sobre a opção -4? Obrigado! Nota: precisei remover algumas partes devido às restrições de postagem de links.

Resolvendo community.tenxguitar.com (community.tenxguitar.com)… 2001:470:1:59e::139, 66.220.12.139
Conectando a
(
)|2001:470:1:59e::139|:443… falhou: Tempo limite da conexão.
Conectando a
()|66.220.12.139|:443… conectado.
Solicitação HTTP enviada, aguardando resposta… 200 OK
Tamanho: não especificado [application/json]
Salvando em: ‘7.json.4’

Sua máquina atualmente tem ambos os endereços IPv4 e IPv6 configurados, mas sua conectividade IPv6 está com problemas e as tentativas de conexão via IPv6 resultam em tempo esgotado.

O wget (e provavelmente seu código Python) está tentando o IPv6 primeiro, esgotando o tempo, e então conectando com sucesso via IPv4. Mas funciona quando -4 força o uso do IPv4.

O Postman provavelmente está usando apenas IPv4, ou está tentando ambos, IPv4 e IPv6 ao mesmo tempo, e usando o que se conectar primeiro.

Você precisará investigar por que as conexões IPv6 não funcionam na sua rede. Mesmo que falhem imediatamente, isso é melhor, pois o wget saberá tentar imediatamente via IPv4 em vez de esperar pelo IPv6.

(ou force suas conexões para IPv4 apenas)

Obrigado, senhor! Isso é interessante. Vou verificar. Mais uma vez, obrigado.