제발요 부탁입니다.
ip를 db에 저장하는 경우는 보통 데이터의 입력 수정 삭제 또는 중요정보 조회시에 합니다
단순 웹사이트에 방문자는 db에 저장하지 않고 웹서버 로그로 기록합니다
모든것을 다 db에 기록하면 db부하도 심해지고 속도로 느리고 db장애로 웹사이트가 마비될 수도 있어서 잘 안하고요
통계나 특정아이피의 유입내역을 확인하려면 웹로그를 분석하는 툴이 있습니다
서버측 웹 어플리케이션을 어떤걸 이용하고 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해 보면서 환경에 맞춰 수정해서 사용하면 되지 않을까 싶어 보이네요.
2개의 답변이 있습니다.
ip를 db에 저장하는 경우는 보통 데이터의 입력 수정 삭제 또는 중요정보 조회시에 합니다
단순 웹사이트에 방문자는 db에 저장하지 않고 웹서버 로그로 기록합니다
모든것을 다 db에 기록하면 db부하도 심해지고 속도로 느리고 db장애로 웹사이트가 마비될 수도 있어서 잘 안하고요
통계나 특정아이피의 유입내역을 확인하려면 웹로그를 분석하는 툴이 있습니다
서버측 웹 어플리케이션을 어떤걸 이용하고 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해 보면서 환경에 맞춰 수정해서 사용하면 되지 않을까 싶어 보이네요.