[javascript] 연결이 로컬 호스트인지 javascript로 확인하는 방법은 무엇입니까?

페이지로드가 내 로컬 컴퓨터에있는 경우 내 자바 스크립트를 확인하고 싶습니다.

내가 그렇게하고 싶은 이유는 개발할 때 서버 측 (C #) 유효성 검사가 모두 올바르게 작동하는지 확인하기 때문입니다. 그래서 클라이언트 측과 서버 측 오류가 모두 표시되는 것을 좋아합니다.

그래서 테스트하는 동안 jquery에 항상 잘못된 데이터를 통과시키는 플래그가 있습니다. 이렇게하면 클라이언트 측 및 서버 오류를 한 번에 볼 수 있습니다.

그러나 지금은 개발에서 프로덕션으로 이동할 때 수동으로 이동하고 앞뒤로 변경해야합니다.



답변

location.hostname변수는 당신에게 현재의 호스트를 제공합니다. 어느 환경에 있는지 확인하기에 충분합니다.

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


답변

예를 들어 file:///C:/Documents and Settings/Administrator/Desktop/“localhost”감지 와 같은 위치에서 브라우저에서 정적 html을 실행하면 작동하지 않습니다. location.hostname빈 문자열을 반환합니다. 그래서

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


답변

여전히 모든 것을 잡는 것은 아니지만 약간 개선 될 수 있습니다. 이제 도메인 배열을 만들고 .includes를 사용할 수 있습니다.

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

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


답변

이것이 React에서 확인되고 , 서비스 워커를 등록 하고 , localhostIPv6을 포함한 호스트 이름을 확인 하고 127로 시작하는 일치 를 확인하여 localhost에 있는지 확인하는 좋은 방법입니다 .

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}$/
    )
);


답변

이를 수행하는 쉬운 방법은 localhost에 대해 호스트 이름을 확인하거나 하위 문자열 (이 경우 http : //testsite.local 과 같은 “.local”URL)에 대해 사용자 정의 도메인 이름을 확인하는 것입니다 .

var myUrlPattern = '.local';
if (window.location.hostname === "localhost" || location.hostname === "127.0.0.1" || window.location.hostname.indexOf(myUrlPattern) >= 0) {
    alert("It's a local server!");
}


답변

다른 스크립트와 동일한 메커니즘을 사용하는 가장 짧은 형식 :

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


답변

이것은 또한 로컬 네트워크 IP를로 시작하는 몇 가지 일반적인 경우 포함 10.0.하거나 192.168.또는 Bonjour를 도메인에 끝나는 것처럼를 .local:

export function isLocalNetwork(hostname = window.location.hostname) {
  return (
    (['localhost', '127.0.0.1', '', '::1'].includes(hostname))
    || (hostname.startsWith('192.168.'))
    || (hostname.startsWith('10.0.'))
    || (hostname.endsWith('.local'))
  )
}