req.ips ใน ExpressJS

ใน ExpressJS req.ips เป็นคุณสมบัติที่เก็บอาร์เรย์ของที่อยู่ IP ของไคลเอนต์ที่ส่งคำขอไปยังแอปพลิเคชัน ที่อยู่ IP จะถูกเก็บไว้ในหัวข้อ X-Forwarded-For หัวข้อนี้มักจะตั้งค่าโดยพร็อกซีเซิร์ฟเวอร์หรือไฟร์วอลล์

หากต้องการใช้ req.ips ใน ExpressJS คุณสามารถใช้สิ่งนี้ในโค้ดของคุณ:

1
2
3
4
5
6
7
const app = express();

app.get("/", function(req, res) {
res.send("Your IPs are: " + req.ips);
});

app.listen(3000);

เมื่อคุณเรียกใช้โค้ดนี้และเข้าถึง URL http://localhost:3000/ คุณจะเห็นอาร์เรย์ของที่อยู่ IP ของคุณในคอนโซล

หากแอปพลิเคชันของคุณอยู่เบื้องหลังพร็อกซีเซิร์ฟเวอร์ อาร์เรย์ของที่อยู่ IP ที่คุณเห็นในคอนโซลอาจเป็นอาร์เรย์ของที่อยู่ IP ของพร็อกซีเซิร์ฟเวอร์แทนอาร์เรย์ของที่อยู่ IP ของไคลเอนต์จริง

หากต้องการรับอาร์เรย์ของที่อยู่ IP ของไคลเอนต์จริง คุณสามารถตั้งค่าค่า trustProxy เป็น true ใน app.listen() ตัวอย่างเช่น:

1
2
3
4
5
const app = express();

app.listen(3000, {
trustProxy: true
});

เมื่อคุณเรียกใช้โค้ดนี้และเข้าถึง URL http://localhost:3000/ คุณจะเห็นอาร์เรย์ของที่อยู่ IP ของไคลเอนต์จริงในคอนโซล

ความแตกต่างที่สำคัญระหว่าง req.ip และ req.ips คือ req.ip จะคืนค่าที่อยู่ IP เดียวจากหัวข้อ X-Forwarded-For ในขณะที่ req.ips จะคืนค่าอาร์เรย์ของที่อยู่ IP จากหัวข้อ