JAVASCRIPT -

[JavaScript] IP(아이피) 주소 체크하기

  • -

✅ IP(아이피) 주소 체크하기

안녕하세요 TriplexLab 입니다.
오늘은 내 사이트에 접속한 IP 번호 체크하는 부분에 대해서 살펴보도록 하겠습니다.

내 사이트가 특정 컴퓨터만(IP만) 접속이 가능하게 하고 싶으시다면 
아래코드를 참고하세요! 👇👇

실제 프로젝트 할때는 아래 코드를 사용하서도 되지만
현재 접속한 컴퓨터 IP번호 조회하는것은 백앤드 개발자 분과 협업할때 문의하시면 될것 같습니다.
(여기서는 이미로 하드코드으로 IP번호 넣었습니다.)

🔍 등록할 IP 여러게 일경우

만약 등록 IP 내역이 : 115.32.141.0 ~ 115.32.141.202 까지 있다고 한다면 
다음과같이 등록 하시면 됩니다.

const ipStart = [
	{'company':'115.32.141.0'}, // 회사에서는 여러게의 IP등록(시작하는 IP번호)
];
const ipEnd = [
	{'company':'115.32.141.202'}, // 회사에서는 여러게의 IP등록(마지막 IP번호)
];

🔍 등록할 IP 한개인 경우

만약 등록 IP 내역이 : 112.22.371.634 있다고 한다면 
다음과같이 등록 하시면 됩니다.

const ipStart = [
	{'home':'112.22.371.634'}, //집에서는 하나의 IP만 등록 
];
const ipEnd = [
	{'home':'112.22.371.634'}, //집에서는 하나의 IP만 등록
];

👨‍💻 전체 코드

<script>
	(() => {	
		function pad(n) {
			return (n.length < 3) ? pad('0' + n) : n;
		};

		function atoi(ip) { // 인자로 넘어 받은 IP형식 xxx.xxx.xxx.xxx형식을 쪼개어서 하나의 값으로 리턴 하는 함수
			return Object.keys(ip).reduce(function(acc, cur){
				return parseInt(ip[cur].split('.').map(function (el) {
					return pad(el);
				}).join(''), 10); 
			},0)
		};
		
		function inRange(ipAddr, startIp, endIp) { // 현제 IP와, 미리 등록한 집 회사 IP와 비교하여 불린(boolean) 값으로 리턴 하는 함수
			return (atoi(ipAddr) >= atoi(startIp)) && (atoi(ipAddr) <= atoi(endIp));
		};

		const ip =  {'currentIP':'115.32.141.1'}; //현재 내 사이트에 접속한 ip번호 (이미로 하드코드 넣었습니다.)
		const ipStart = [
			{'home':'112.22.371.634'}, //집에서는 하나의 IP만 등록 
			{'company':'115.32.141.0'}, // 회사에서는 여러게의 IP등록(시작하는 IP번호)
		];
		const ipEnd = [
			{'home':'112.22.371.634'}, //집에서는 하나의 IP만 등록 
			{'company':'115.32.141.200'}, // 회사에서는 여러게의 IP등록(마지막 IP번호)
		];
			
		let allowAccess = false;

		ipStart.forEach(function(el, idx){
			if (inRange(ip, ipStart[idx], ipEnd[idx])){
				allowAccess = true;
			}
		});
        
		if (!allowAccess) {
			location.href="https://www.naver.com/";
		}	
	})();
</script>

파일로도 제공합니다.
필요한 분들은 다운 받으세요!!👏👏

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.