avatar_epmak

Как получить IP адрес клиента на node.js? | Определение IP приконнектченного клиента с помощью функц

Автор epmak, 2014 Июль 08, 15:40

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] javascriptdhtmlhtml+cssnode.jssocket.iogetclientipопределение ip адреса клиента

epmak

Забавная ситуация, в общем.
есть node.js
есть библиотека socket.io (актуальная)
Есть некое приложение, в котором мне необходимо узнавать Ip приконнекченного клиента

юзаю функцию

function getClientIp(req) {
var ipAddress;
// Amazon EC2 / Heroku workaround to get real client IP
var forwardedIpsStr = req.headers['x-forwarded-for'];
if (forwardedIpsStr) {
// 'x-forwarded-for' header may return multiple IP addresses in
// the format: "client IP, proxy 1 IP, proxy 2 IP" so take the
// the first one
var forwardedIps = forwardedIpsStr.split(',');
ipAddress = forwardedIps[0];
}
if (!ipAddress) {
// Ensure getting client IP address still works in
// development environment
ipAddress = req.connection.remoteAddress;
}
return ipAddress;
}


все вроде работает как надо, но бывают моменты, когда тупо Ip undefined
причем как таким способом, так и через handshake
а, да, забыл, в сети всем рулит TMG и есть подозрение, что иногда он слишком много на себя берет, но судя по его логам, все гуд.
кто сталкивался с подобной бякой, есть ли решения?

Profesor08

#1
Ты же наверняка изучил весь комплект данных, которые приходят к приложению?

epmak

#2
Не совсем понял вопрос.
Socket.io плохо документирована(или я совсем ослеп), есть примеры как с ней работать, но таких тонкостей нет. Штудированние интернетов не дало результатов. Везде пишут о проблеме прокси и как это лечить, но тут беда в том, что даже проверяяхидеры, иногда ип просто андефаинед

Profesor08

На твоем бы месте я бы взял более ранний билд. Актуальность != стабильность. А вообще, есть же "x-forwarded-for", найти что его формирует, там и найдется решение.

epmak

Проф, версия 1.0 у библиотеки, по моему. Там все обновляется на рипозиториях.  Да и горяка откатываться сейчас. Эта версия работает в несколько раз быстрее, так как до этого было что то вроде альфы. Х форвардс это и есть проверка на наличие прокси в сети, формируется из протокола хттп. Основная загвоздка в том, что время от времени отваливается ЛЮБОЕ упоминание об ип. По поводу теории что это баг, мысли были, но все- таки думаю что самая большая проблема - отсутствие человеческой документации к библиотеке