2014-10-21 3 views
1

Есть ли какой-либо модуль node.js, который может использоваться для получения общедоступного IP-адреса компьютера клиента, делающего запрос? Я не имею в виду IPv4 или IPv6, мне нужен публичный IP-адрес, который вы получаете, когда идете в http://www.whatismyip.com/Получить общедоступный IP-адрес для приложения node.js

Я пробовал req.connection.remoteAddress;, но он не возвращает общедоступный IP-адрес. Он должен быть общедоступным, поэтому я могу найти город на основе IP-адреса.

спасибо :)

+0

http://www.hacksparrow.com/node-js-get-ip-address.html – dandavis

+0

, когда я использовал уаг IP = req.header ('х-пересылаются-за') || req.connection.remoteAddress; внутри http.createServer (функция (req, res) {}); он говорит TypeError: Object # не имеет заголовка метода. Это то, что вы отправили мне в ссылку устаревшей ??? – PenguinProgrammer

+0

Этот способ не показывает IP, он просто дает ошибку – PenguinProgrammer

ответ

0

Вот упакованный называется внешние IP, который может сделать это для вас в npm install external-ip:

var externalip = require('external-ip'); 
externalip(function (err, ip) { 
    console.log(ip); // => 8.8.8.8 
}); 

(источники: https://www.npmjs.org/package/external-ip, https://stackoverflow.com/a/24608249/823548)

+2

Я видел этот модуль, но я не пытаюсь найти общедоступный ip серверного компьютера, я пытаюсь получить его для компьютера клиента – PenguinProgrammer

0
var ip = (req.headers && req.headers['x-forwarded-for']) 
     || req.ip 
     || req._remoteAddress 
     || (req.connection && req.connection.remoteAddress); 
2

я знаю этот старый вопрос, но теперь вы можете использовать http://whatismyipaddress.com/api для получения IP-адреса. Просто отправьте запрос на bot.whatismyipaddress.com и получите результат.

var http = require('http'); 
http.get('http://bot.whatismyipaddress.com', function(res){ 
    res.setEncoding('utf8'); 
    res.on('data', function(chunk){ 
     console.log(chunk); 
    }); 
}); 
Смежные вопросы