2012-09-10 16 views

cevap

16

ben bu yaklaşım ne kadar kurşun geçirmez emin değilim, ama burada, web etrafında cevapları toplanan:

var http = require('http'); 
http.createServer(function (req, res) 
{ 
    var ip = req.ip || req.connection.remoteAddress || req.socket.remoteAddress || req.connection.socket.remoteAddress; 
    if (ip == '127.0.0.1') // exit if it's a particular ip 
     res.end(); 
... 

, düğümünde daha yetkin birisi Lütfen -

16

Eğer bana düzeltmek ağ adresi tarafından tüm sunucu erişimi kısıtlama vardır, bu güvenlik duvarında bu kuralları koymak en iyisidir. Eğer herhangi bir nedenle uygulama katmanında ele istiyorsanız (yapılandırmasına, dinamik yetkilendirme, vb kolaylığı) o zaman bir HTTP isteği beklerken ziyade bağlantı hemen sonra bunu yapmak en iyisidir.

node.js' gerçek HTTP isteği uzaktan adresini belirlemek ve daha önce (veya sırasında) bağlantısı öldürmek için kullanabilirsiniz http.Server emits a connection event. Bu kod test edilmemiş, ancak başlamanız gerekir:

var server = http.createServer(function (req, res) { 
    // Your normal request handling goes here 
}); 

server.on('connection', function (sock) { 
    console.log(sock.remoteAddress); 
    // Put your logic for what to do next based on that remote address here 
}); 

server.listen(80); 
+1

Çok iyi nokta. Ben nodejs gelen ip deftercisi ve sırasıyla iptables güncellemek için bir kabuk periyodik çalışan var nerede şu anda bir sistem kullanırlar. 'Bu kuralları güvenlik duvarında, uygulama katmanına çarpmadan önce koyduğunuzda kesinlikle haklısınız. –

İlgili konular