2012-04-01 2 views
0

J'utilise now.js et il y a cette ligne qui fait référence à localhost. Pour que quelqu'un puisse accéder au serveur à l'extérieur, je dois modifier localhost pour qu'il soit l'adresse IP externe de mon ordinateur (mon ip est dynamique). Est-il possible de détecter l'adresse IP externe actuelle du script?comment obtenir ip externe du serveur de node.js

window.now = nowInitialize("//localhost:8081", {}); 

Répondre

3

Vous pouvez demander un service externe comme this one (ce qui est bien parce qu'elle retourne sans mise en forme).

Pour l'utiliser, vous pouvez utiliser Node's built in http module:

require('http').request({ 
    hostname: 'fugal.org', 
    path: '/ip.cgi', 
    agent: false 
}, function(res) { 
    if(res.statusCode != 200) { 
     throw new Error('non-OK status: ' + res.statusCode); 
    } 
    res.setEncoding('utf-8'); 
    var ipAddress = ''; 
    res.on('data', function(chunk) { ipAddress += chunk; }); 
    res.on('end', function() { 
     // ipAddress contains the external IP address 
    }); 
}).on('error', function(err) { 
    throw err; 
}); 

Gardez à l'esprit que les services externes peuvent aller ou le changement - cela est arrivé une fois déjà, cette réponse invalidant. Je l'ai mis à jour, mais cela pourrait se produire à nouveau ...

+0

Comment puis-je obtenir l'adresse IP retournée sur le site? –

+0

@Kyoka: J'ai ajouté du code. Voir ma modification. – icktoofay

+0

Cela ne fonctionnera plus, le site affiche maintenant l'adresse IP dans une image. –

Questions connexes