Express JS ile uygulama geliştirirken istemcinin IP adresine ihtiyaç olduğunda onu almanı bir çok yolu vardır. Bunlardan o an için en uygun olanı seçmek gereklidir.
Node JS Üzerinde IP Adresini Alma
Node JS ile IP adresini almak için aşağıdaki kod kullanılabilir.
const ip = req.headers['x-real-ip'] || req.connection.remoteAddress;Eğer isteğin başlık (headers) bilgisi içerisinde x-real-ip varsa buradan aksi halde, req.connection.remoteAddress üzerinden IP adresi alınır. Örnek olarak bir express js üzerinde görelim.
get("/", (req, res) => {
const IP = req.headers['x-real-ip'] || req.connection.remoteAddress;
res.send("IP adresiniz : " + IP);
});
// Adrese istek yapıldığında
// Geriye
// IP adresiniz : :::1
// şeklinde bir bilgi gönderir
// :::1 IP adresidir.Express JS request Nesnesinden IP Adresini Alama
Express JS request nesnesi üzerinde istemci tarafından iletilen bir çok bilgiye ulaşılabilir. Query string, IP adresi, protokol vb.
Yazımızın konusu olan IP adresine ulaşmak için farklı metodlar bulunmakta.
req.ip
İstemcinin IP adresini içerir.
trust proxy ayarı false olmadığında X-Formwarded-For değerinden oluşturulur. Örnek kullanımı aşağıdaki gibidir.
get("/", (req, res) => {
const IP = req.ip;
res.send("IP adresiniz : " + IP);
});
// Adrese istek yapıldığında
// Geriye
// IP adresiniz : :::1
// şeklinde bir bilgi gönderir
// :::1 IP adresidir.Kullanımı kolay bir yoldur.
req.ips
Eğer trust proxy ayarı false değilse X-Forwarded-For değerinden IP adreslerini içeren bir dizi geri dönderir. Aksi halde boş bir array, [], dönecektir.
Express JS request nesnesi üzerinde ip bilgileri için tıklayınız. Aynı sayfada request nesnesinin içerdiği diğer bilgilerede ulaşabilirsiniz.
Sonuç
İstemci IP adresini almanın farklı yollarını Node JS ve Express JS üzerinde bulabilirsiniz. Bunlardan bir tanesi express js request nesnesindeki ip değeridir.
Express JS üzerindeki deneyimlerinizi bizimle yorumlardan paylaşabilirsiniz.
