Conexión API vía ipv6 vs. ipv4

Hola a todos,

Tengo un problema para acceder a la API de manera oportuna. Estoy accediendo a la siguiente URL:

He creado una clave de API y un usuario, y todo parece estar bien hasta ahora.

Cuando lo pruebo desde Postman con las credenciales adecuadas, devuelve los datos de inmediato, como esperaba.

El problema surge cuando intento acceder desde otro lugar que no sea Postman… como mi código. Tarda MINUTOS en responder, pero finalmente devuelve los datos.

El mismo problema ocurre desde una terminal con este comando:

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'

El comportamiento es el mismo que en mi código Python. No creo que tenga ninguna configuración que pueda afectar esto (en el foro). ¿Alguien puede aconsejarme o ayudarme?

¡Gracias!

¿Se están ejecutando Postman y tu ejemplo de código de línea de comandos desde la misma máquina?

¿Probaste curl para una tercera comparación, en lugar de wget?

¿Devuelve los resultados inmediatamente si añades la opción -4 a wget?

Si no es así, ¿puedes publicar la salida (oculta) si añades la opción -v?

Sí, está en la misma máquina.

Michael,

Probé la opción -4 (que no me es familiar) y funcionó inmediatamente y como se esperaba. Luego probé la opción -v y, si entendí correctamente, parece ser un tiempo de espera de SSL. Aquí está la salida de -v. ¿Podrías ampliar información sobre la opción -4? ¡Gracias! Nota: tuve que recortar algunos elementos debido a las restricciones de publicación de enlaces.

Resolviendo community.tenxguitar.com (community.tenxguitar.com)… 2001:470:1:59e::139, 66.220.12.139
Conectando a
()|2001:470:1:59e::139|:443… falló: Tiempo de espera de conexión agotado.
Conectando a ()|66.220.12.139|:443… conectado.
Solicitud HTTP enviada, esperando respuesta… 200 OK
Longitud: no especificada [application/json]
Guardando en: ‘7.json.4’

Tu máquina tiene configuradas direcciones tanto IPv4 como IPv6 en este momento, pero tu conectividad IPv6 está rota y los intentos de conexión mediante IPv6 agotan el tiempo.

wget (y probablemente tu código en Python) intenta primero IPv6, agota el tiempo de espera y luego se conecta correctamente mediante IPv4. Sin embargo, funciona cuando -4 fuerza el uso de IPv4.

Postman probablemente solo utiliza IPv4, o está intentando IPv4 e IPv6 simultáneamente y usando la que se conecta primero.

Necesitarás investigar por qué las conexiones IPv6 no funcionan en tu red. Incluso si fallan inmediatamente, eso es mejor, ya que wget sabrá que debe intentar inmediatamente mediante IPv4 en lugar de esperar a IPv6.

(o bien, fuerza tus conexiones a solo IPv4)

¡Gracias, señor! Eso es interesante. Lo investigaré. Gracias de nuevo.