Về việc lấy địa chỉ ip của client trên express nodejs.
-
Mình thử các cách nhưng chỉ có thể lấy được "ffff::127.0.0.1" thôi.
Bạn nào có giải pháp mong được chỉ giáo.
Cảm ơn.
-
-
@Khoa-Lê-Duy
Cảm ơn bạn, mình thử nhiều cách vẫn chỉ trả về ::ffff:127.0.0.1 thôi.
TÌm hiểu thì đây là ipv6, nhưng vì mình dùng ip để lưu thông tin guest nên nếu toàn bộ ip đều là ::ffff:127.0.0.1 thì không có ý nghĩa gì cả.
-
@Acenter-Ha
Lạ nhỉ?
Mình test trên máy mình vẫn ngon
Hay do config của ip6
Thử check my ip xem
-
@Acenter-Ha
Bạn thử đoạn code này xem
function getCallerIP(request) {
var ip = request.headers['x-forwarded-for'] ||
request.connection.remoteAddress ||
request.socket.remoteAddress ||
request.connection.socket.remoteAddress;
ip = ip.split(',')[0];
ip = ip.split(':').slice(-1); //in case the ip returned in a format: "::ffff:146.xxx.xxx.xxx"
return ip;
}
-
@tuanquynet Mình đã thử rồi vẫn không được bạn ạ.
Mình nghi là do VPS nó đang tự động redirect về ipv6 tất cả các request.
Không biết có đúng hay không.Thử bằng page My IP mà bạn @Khoa-Lê-Duy gửi thì vẫn show ip bình thường. Test ở local vẫn nhận ip bình thường.
-
@tuanquynet @Khoa-Lê-Duy
Được rồi 2 bạn ạ, mình thay đổi NGINX config thì nhận được rồi.Cảm ơn 2 bạn rất nhiều.