Dentro de una de mis rutas api next.js,
Por ejemplo: pages/api/example.js
Tengo el siguiente código simple. Luego, dentro de esta ruta, tengo una solicitud de publicación a un servidor.
export default async function example(req, res) { const data = await axios.post( https://another_server_Url, // another server api { data }) res.status(200).json({ name: 'John Doe' }) } Mi pregunta es si la API another_server implementa un mecanismo de limitación de clasificación. Es posible que primero obtenga la dirección IP del usuario y luego, de alguna manera, pase la dirección IP a través de la solicitud axios. Entonces, la API another_server puede reconocer la IP verdadera.
Según entiendo el código actual, el servidor next.js de alguna manera se convierte en un proxy.
El problema ahora es que debido a que llamé a la API dentro de mi próxima API de enrutador, la dirección IP siempre será mi servidor next.js
Puede obtener la IP del cliente de req.headers['x-forwarded-for'] ; eche un vistazo a: Cómo determinar la dirección IP de un usuario en el nodo . Luego, pase esta IP dentro del cuerpo de la solicitud POST de axios a another_server .
Editar:
En respuesta a su comentario a continuación, la implementación depende en gran medida de la configuración del servidor backend ( another_server ) y cómo lee la IP del cliente. Por ejemplo, verifique si usa encabezados de solicitud para determinar la IP; de ser así, identifique el encabezado en particular y sobrescríbalo en la llamada axios para incluir la IP del cliente original, por ejemplo:
const clientIp = (req.headers['x-forwarded-for'] || '').split(',').pop().trim() || req.socket.remoteAddress; const data = await axios({ method: 'post', url: 'https://google.com', headers: { 'x-forwarded-for': clientIp }, // ... }); Otra solución sería simplemente enviar la solicitud desde el lado del cliente directamente a another_server y omitir el problema por completo, pero supongo que no es una solución viable en su caso.