req.ip ใน ExpressJS

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

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

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

app.get("/", function(req, res) {
res.send("Your IP is: " + req.ip);
});

app.listen(3000);

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

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

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

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

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

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