Как получить 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(); }); а в другие нет |
https://stackoverflow.com/questions/...ddress-in-node
Если используете revers proxy, то передавайте ip-клиента в доп. заголовках запроса. Обычно с прокси ip передается в заголовке x-forwarded-for. |
в таком коде
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 |
riaron, у вас есть 2 сообщения об ошибках.
Переведите каждое на русский язык и попытайтесь понять, что каждая из них обозначает. Если какое-то из них вам непонятно, загуглите текст ошибки. Проанализируйте полученную информацию и устраните причину ошибки. В противном случае вы поселитесь на этом форуме плодя темы с описанием различных ошибок и ожидая, что кто-нибудь другой устранит за вас ваши ошибки. |
var addrss=request.headers['x-forwarded-for']; пишет undefined. во вью вывожу ничего не возвращает
|
Цитата:
Цитата:
Что такое в вашем коде request? Где эта переменная/константа инициализируется? |
Извиняюсь написал req. первом коде(там где задавал вопрос) пише пиавильный ip, еще такой вопрос взял select из третьего поста с верху и подставил в запрос с первого поста (с редактированием, оставил переменную которая выводит ip) не выдает результат
|
Часовой пояс GMT +3, время: 03:40. |