2014-06-24 13 views
7

Ho un seguente codice di base del server HTTP che è in ascolto sulla porta 8000. Come determinare l'indirizzo IP del server, può essere recuperato dalla variabile 'server'? Sto lavorando su un'applicazione in cui ho bisogno di inviare automaticamente le informazioni del server (ip, port ecc.) Al redis store.Node.js Come ottenere l'indirizzo IP del server http in ascolto su una porta specifica

Sono nuovo di node.js, Grazie per l'aiuto

var http = require("http"); 
var server = http.createServer(function(request, response) { 
  response.writeHead(200, {"Content-Type": "text/html"}); 
  response.write("Hello!!!"); 
  response.end(); 
}); 

server.listen(8000); 
console.log("Server is listening...."); 

risposta

2

Supponendo che si desidera che l'indirizzo del server è destinato a, è possibile utilizzare server.address.address per ottenere l'IP indirizzo al quale il server è vincolato. Allo stesso modo, è possibile utilizzare server.address.port per ottenere il numero di porta a cui è associato il server.

Da: http://nodejs.org/api/net.html#net_server_address.

+0

non il suo lavoro è restituisce 0.0.0.0 indirizzo IP. Qualche idea? {"indirizzo": "0.0.0.0", "famiglia": "IPv4", "porta": 8000} – Sohaib

+0

Da: http://nodejs.org/api/http.html#http_server_listen_port_hostname_backlog_callback. Se non si passa un nome host per collegarlo, verrà associato automaticamente a 0.0.0.0. Dato che stai specificando solo una porta, essa verrà associata a 0.0.0.0 per impostazione predefinita e l'oggetto restituito da server.address sarebbe corretto. –

+0

Vedere la risposta di Alistair MacDonald: server.address(). Indirizzo, non server.address.address –

9

Usa la seguente:

server.address() 

che registra qualcosa come:

{ address: '0.0.0.0', family: 'IPv4', port: 8080 } 

per registrare il IP del server alla console, utilizzare:

console.log(server.address().address); 
+1

Questa è la risposta corretta poiché 'address' è un metodo, non una proprietà – divillysausages

Problemi correlati