점검 소스를 이용중인데 2개 이상의 아이피 설정이 가능한가요?

점검 소스를 이용중인데 2개 이상의 아이피 설정이 가능한가요?

QA

점검 소스를 이용중인데 2개 이상의 아이피 설정이 가능한가요?

본문

<?php

if($_SERVER['REMOTE_ADDR'] != '아이피주소') {

  header("Location: /maintenance.php");

  exit;

?>

 

 

안녕하세요 현재 위 점검소스를 이용중입니다.

만약에 111.111.111.111이라는 아이피와 222.222.222.222라는 아이피만 접근할 수 있도록 설정을 어떻게 해야할까요?

 

<?php

if($_SERVER['REMOTE_ADDR'] != '111.111.111.111' , '222.222.222.222' ) {

  header("Location: /maintenance.php");

  exit;

?>

 

이런식으로 구분하는 방법좀 알고 싶습니다.

관리자 페이지에서 접근 ip는 아이피가 종종 변경되기 때문에 head 에서 고치고 싶습니다.

이 질문에 댓글 쓰기 :

답변 2

기초 + 조건 뒤집기 팁. 참고로 추가합니다.


if ( 참 || 참 ) {
  // 접속 허용
} else {
  // 접속 비허용
}
// 참↔거짓, ||(OR)↔&&(AND) ... 그대로 뒤집으면 아래처럼 됩니다.
// 이 조건 뒤집기를 알아두면 피가 되고 살이 됩니다.
if ( 거짓 && 거짓 ) {
  // 접속 비허용
} else {
  // 접속 허용
}
 
// 질문의 코드에 아이피를 하나 더 추가하려면, 아래처럼 조건을 추가해주면 됩니다.
// 코드가 길어지니, in_array() 함수를 이용하는 것이 훨씬 간단하겠죠? '-');
if ( $_SERVER['REMOTE_ADDR']=='아이피1' || $_SERVER['REMOTE_ADDR']=='아이피2' ) {
  // 접속 허용
} else {
  // 접속 비허용
}
if ( $_SERVER['REMOTE_ADDR']!='아이피1' && $_SERVER['REMOTE_ADDR']!='아이피2' ) {
  // 접속 비허용
} else {
  // 접속 허용
}
 
// 참고로 swich()문을 이용한 처리 방법
switch ( $_SERVER['REMOTE_ADDR'] ) {
  case '아이피1':
  case '아이피2':
    // 접속 허용
    break;
  default:
    // 접속 비허용
}
 
// in_array()보다 빠른 방법 - 값이 많을 때 유용.
$allow_ip = array_fill_keys(['아이피1', '아이피2'], 0); // 0, '', 1 등 변수 설정만 되면 OK. (null 제외)
// 아래처럼 할당해도 됩니다.
// $allow_ip = [];
// $allow_ip['아이피1'] = 0;
// $allow_ip['아이피2'] = 0;
if ( isset($allow_ip[$_SERVER['REMOTE_ADDR']]) ) { // !isset()으로 하면, 허용/비허용 반대
  // 접속 허용
} else {
  // 접속 비허용
}
 
// 아참! 접속 비허용 부분에 질문의 주소 이동 코드 넣으면 끝. 기타 생략.

 

+ switch

- https://www.php.net/manual/en/control-structures.switch.php

- http://docs.php.net/manual/kr/control-structures.switch.php

 

+ array_fill_keys()

- https://www.php.net/manual/en/function.array-fill-keys.php

 

+ isset()

 

- https://www.php.net/manual/en/function.isset.php

- http://docs.php.net/manual/kr/function.isset.php

 

+ PHP type comparison tables (PHP 자료형 비교표)

- https://www.php.net/manual/en/types.comparisons.php

- http://docs.php.net/manual/kr/types.comparisons.php

답변을 작성하시기 전에 로그인 해주세요.
전체 123,719 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT