Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Как получить ip клиента (https://javascript.ru/forum/node-js-io-js/81138-kak-poluchit-ip-klienta.html)

riaron 07.10.2020 11:51

Как получить ip клиента
 
req.connection.remoteAddress выдает ::1 как получить реальный ip?
здесть в базеи данных записывает правильно
app.get('/add-to-basket/:id/:from', (req, res) => {
        var connection = getMySQLConnection();
    var baskethsh=randomIndex();
    var raddr=req.connection.remoteAddress;
    connection.connect(function(err) {
        if (err) throw err;
        var sql = "INSERT INTO elektronika.`basket` (`id`,`prod`,`name`,`photo`,`price`,`sale`,`baskethash`,`remote_adr`,`quantity`) SELECT  `id`,`prod`,`name`,`photo`,`price`,`sale`,?,?,? FROM elektronika.`smartphone` where id=?";
        var valuesi = [baskethsh];
        var valuesii = [raddr];
        var valuesiii = [1];
        var values = [req.params.id];
        connection.query(sql, [valuesi,valuesii,valuesiii,values], function (err, result) {
            if (err){
                throw err;
    }});
});
connection.end();
	res.redirect("/"+req.params.from+"/");
	res.send();

  });

а в другие нет

Nexus 07.10.2020 15:56

https://stackoverflow.com/questions/...ddress-in-node
Если используете revers proxy, то передавайте ip-клиента в доп. заголовках запроса.
Обычно с прокси ip передается в заголовке x-forwarded-for.

riaron 09.10.2020 13:15

в таком коде
app.get('/basket', function(req, res) {
    // Connect to MySQL database.
    var connection = getMySQLConnection();

    // Do the query to get data.
    var query='SELECT `id`,`prod`,`name`,`photo`,`price`,`sale`,`baskethash`,`remote_adr`,`quantity` FROM `basket` WHERE `remote_adr`="::ffff:127.0.0.1"';

    connection.query(query,
        function(err, results, fields) {
            console.log(err);
            var smartphone=[];
            var smartphoneList=[];
            var allprice;
            var a;
            var b;
            for(var i=0;i<results.length;i++) {
                // Create the object to save the data.
                b=results[i].price-results[i].price*results[i].sale/100;

                a=b*results[i].quantity;
                var smart = {
                    'id': results[i].id,
                    'prod': results[i].prod,
                    'name': results[i].name,
                    'photo': results[i].photo,
                    'sale': results[i].sale,
                    'price': results[i].price,
                    'tsale': b,
                    'vsego':a,
                    'quantity': results[i].quantity,
                };
                allprice +=smart.vsego;
                smartphone.push(smart);
            }
            var addrss=request.headers['x-forwarded-for'];
            var smartphoneList={
                'allprice':allprice,
                'len':results.length,
                "ip":addrss,
            }
            res.render('basket', {"smartphoneList": smartphoneList,"smartphone": smartphone,});
        });
    connection.end();
    // Close MySQL connection
});

пишет
C:\xampp\htdocs\mysite.local\node_modules\mysql\li b\protocol\Parser.js:437
throw err; // Rethrow non-MySQL errors
^

ReferenceError: request is not defined
at Query.<anonymous> (C:\xampp\htdocs\mysite.local\app.js:223:24)
\app.js:223:24 это строка где определяется addrss

Nexus 09.10.2020 14:06

riaron, у вас есть 2 сообщения об ошибках.
Переведите каждое на русский язык и попытайтесь понять, что каждая из них обозначает.
Если какое-то из них вам непонятно, загуглите текст ошибки.
Проанализируйте полученную информацию и устраните причину ошибки.

В противном случае вы поселитесь на этом форуме плодя темы с описанием различных ошибок и ожидая, что кто-нибудь другой устранит за вас ваши ошибки.

riaron 10.10.2020 08:29

var addrss=request.headers['x-forwarded-for']; пишет undefined. во вью вывожу ничего не возвращает

Nexus 10.10.2020 13:04

Цитата:

Сообщение от riaron
var addrss=request.headers['x-forwarded-for']; пишет undefined.

Цитата:

Сообщение от riaron
ReferenceError: request is not defined

:-?

Что такое в вашем коде request? Где эта переменная/константа инициализируется?

riaron 10.10.2020 13:26

Извиняюсь написал req. первом коде(там где задавал вопрос) пише пиавильный ip, еще такой вопрос взял select из третьего поста с верху и подставил в запрос с первого поста (с редактированием, оставил переменную которая выводит ip) не выдает результат


Часовой пояс GMT +3, время: 00:50.