144 votes

Comment vérifier avec javascript si la connexion est un hôte local ?

Je veux vérifier dans mon javascript si la page qui se charge est sur ma machine locale.

La raison pour laquelle je veux faire cela est que lorsque je développe, j'aime m'assurer que la validation côté serveur (C#) fonctionne correctement. J'aime donc voir apparaître les erreurs côté client et côté serveur.

Donc, pendant que je teste, j'ai un drapeau dans mon truc de validation jquery qui laisse toujours passer les données invalides. De cette façon, je vois les erreurs côté client et côté serveur en une seule fois.

Cependant, à l'heure actuelle, je dois effectuer manuellement les changements nécessaires pour passer du développement à la production.

276voto

Unicron Points 3021

Les location.hostname vous indique l'hôte actuel. Cela devrait suffire pour déterminer l'environnement dans lequel vous vous trouvez.

if (location.hostname === "localhost" || location.hostname === "127.0.0.1")
    alert("It's a local server!");

46voto

Tomasz Bujnowski Points 371

Si l'on lance un fichier html statique dans le navigateur, par exemple à partir d'un emplacement tel que file:///C:/Documents and Settings/Administrator/Desktop/ La détection de "localhost" ne fonctionnera pas. location.hostname renverra une chaîne vide.

if (location.hostname === "localhost" || location.hostname === "127.0.0.1" || location.hostname === "")
    alert("It's a local server!");

21voto

Alireza Points 40192

C'est ainsi qu'il est enregistré React, enregistrer le travailleur de service Un bon moyen de vérifier si vous êtes sur l'hôte local est de vérifier le nom d'hôte, y compris le nom d'utilisateur. localhost y IPv6 et l'appariement commence par 127 :

const isLocalhost = Boolean(
    window.location.hostname === 'localhost' ||
    // [::1] is the IPv6 localhost address.
    window.location.hostname === '[::1]' ||
    // 127.0.0.1/8 is considered localhost for IPv4.
    window.location.hostname.match(
        /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/
    )
);

15voto

daniele bertella Points 335

Ce n'est pas encore une panacée, mais c'est peut-être une petite amélioration. Vous pouvez maintenant créer un tableau de domaines et utiliser .comprend

const LOCAL_DOMAINS = ["localhost", "127.0.0.1", ...];

if (LOCAL_DOMAINS.includes(window.location.hostname))
  alert("It's a local server!");

11voto

TarmoPikaro Points 11

Forme la plus courte utilisant la même mécanique que les autres scripts :

if ( ["localhost", "127.0.0.1", ""].includes(window.location.hostname) ) {
     console.log("It's local host !");
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X