Как получить 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, время: 10:56. |