SharedIT | 묻고 답하기(AMP)

제 웹사이트에 들어온 사람들 IP 데이터베이스에 자동으로 저장하는법좀 알려주세요.

제발요 부탁입니다.

Tags : 태그가 없습니다.

2개의 답변이 있습니다.

빨간신발
  0 추천 | 2년 이상 전

ip를 db에 저장하는 경우는 보통 데이터의 입력 수정 삭제 또는 중요정보 조회시에 합니다

단순 웹사이트에 방문자는 db에 저장하지 않고 웹서버 로그로 기록합니다

모든것을 다 db에 기록하면 db부하도 심해지고 속도로 느리고 db장애로 웹사이트가 마비될 수도 있어서 잘 안하고요

통계나 특정아이피의 유입내역을 확인하려면 웹로그를 분석하는 툴이 있습니다

wansoo
  0 추천 | 2년 이상 전

서버측 웹 어플리케이션을 어떤걸 이용하고 DB를 어떤걸 이용하냐에 따라 구현 방법에 있어서 차이는 있겠고요.

저장하는 DB와 테이블을 어떻게 만들어 뒀냐에 따라서도 차이가 있겠고...


php에 mysql을 사용한다면...


 

<? php

function getRealClientIp() {

    $ipaddress = '';

    if (getenv('HTTP_CLIENT_IP')) {

        $ipaddress = getenv('HTTP_CLIENT_IP');

    } else if(getenv('HTTP_X_FORWARDED_FOR')) {

        $ipaddress = getenv('HTTP_X_FORWARDED_FOR');

    } else if(getenv('HTTP_X_FORWARDED')) {

        $ipaddress = getenv('HTTP_X_FORWARDED');

    } else if(getenv('HTTP_FORWARDED_FOR')) {

        $ipaddress = getenv('HTTP_FORWARDED_FOR');

    } else if(getenv('HTTP_FORWARDED')) {

        $ipaddress = getenv('HTTP_FORWARDED');

    } else if(getenv('REMOTE_ADDR')) {

        $ipaddress = getenv('REMOTE_ADDR');

    } else {

        $ipaddress = '알수없음';

    } 

    return $ipaddress;

}


$conn = mysqli_connect("DB서버주소", "DB 계정", "DB 암호", "DB Name");

 

mysqli_query($conn, "

INSERT INTO 테이블명 (

ipaddr,

acc_date

) VALUES ( " . getRealClientIp() . " ,

NOW()

)

" );


?>


와 같은 형태로 index.php 파일에 만들어 넣어 두면 되지 않을까 싶어 보이네요.


인터넷 검색한 내용으로 만들어 본 코드이고,

참고해서 Test해 보면서 환경에 맞춰 수정해서 사용하면 되지 않을까 싶어 보이네요.