Według to the node.js documentation for the "os" module trzeba załadować moduł „OS”, który ma hostname()
funkcję:
var os = require("os");
var hostname = os.hostname();
jednak, że tylko nazwa hosta - bez nazwy domeny (FQDN). Nie ma łatwego sposobu na uzyskanie nazwy FQDN. Możesz użyć adresu the node.js DNS functions, aby spróbować przekształcić adres IP serwera (który uzyskasz pod numerem os.networkInterfaces()
, patrz link do dokumentu powyżej) w nazwie. Jedynym problemem jest to, że serwery mogą mieć różne interfejsy i nazwy, więc musisz podjąć decyzję, który z nich chcesz.
Podjęto próbę użycia obiektu window
, ale istnieje tylko w środowisku wykonawczym JavaScript w przeglądarkach. JavaScript po stronie serwera oczywiście nie ma okien, więc nie ma obiektu window
. See this question: "Does node.js have equivalent to window object in browser".
Dzięki tym informacjom Twoje pytanie jest nieco dziwne - w przeglądarce window.location.hostname
jest częścią adresu URL, z którego załadowano bieżącą stronę. Jak przetłumaczyć to na kontekst serwera? Kod uruchamiany na węźle node.js pochodzi z tego samego serwera, z definicji, więc nie potrzebujesz tych informacji. Możesz (potrzebujesz) go w przeglądarce, ponieważ ta informacja jest zmienna, szczególnie gdy uruchamiasz mashupy (kod JS z różnych źródeł), twój kod może nie wiedzieć, skąd strona, na której działa, została załadowana. Na serwerze zawsze wiesz, że to twój lokalny system plików.
Nawiasem mówiąc, zawsze można użyć localhost
jako hosta :)
@Quentin Nie, to jeden jest o gospodarzu w nagłówku żądania HTTP, co najmniej, że odpowiedź został przyjęty - prawda, tytuł jest mylący. –
Spróbuj http://davidcaylor.com/2012/05/24/finding-the-hostname-in-node-js/ –