Я только что столкнулся с задачей, мне нужно получить локальный IP-адрес удаленного клиента, который обращается к API REST на нашем сервере, я не использую какой-либо балансировщик нагрузки (так как пока ничего не знаю об этом), мое приложение работает на моем компьютере локально, и я показываю его в Интернете с помощью инструмента ngrok, который размещает мое приложение и делает его доступным для Интернета. Я поделюсь с вами тем, что я сделал до сих пор, но это не отвечает моим потребностям, так как он получает только публичный IP-адрес удаленного клиента, что означает, что, если два разных пользователя обращаются к API из одной сети, с этим кодом , их IP-адреса сообщаются одинаково,
RedisRouter.post('/incrementvisit', async (req: Request, res: Response, next: NextFunction) => {
try {
console.log('req.ip', req.ip);
console.log('request.connection.remoteAddress==================================', req.connection.remoteAddress);
var ip = req.headers['x-forwarded-for'];
console.log('ip from headers -------------->', ip);
console.log('api after trimming', ip);
res.send(await rs.visitCounter(req.body.name,ip));
} catch (error) {
console.log(error);
next(error);
}
});
`это всегда дает мне один и тот же IP-адрес для всех тех пользователей, которые запрашивают API из одной и той же сети, это их публичный IP-адрес, а не локальный. По сути, мне нужно отслеживать количество разных пользователей, проверяющих наш API, и я не могу использовать один и тот же IP-адрес для учета двух разных людей, запрашивающих API из одной сети.
плюс, пожалуйста, предложите мне несколько хороших статей для начинающих по использованию веб-прокси и веб-сетей для разработчиков.
Спасибо, останься благословенным.