제목 | CI2.1.0 세션 ip가져오기 질문이요 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | CI3newbi | 작성시각 | 2022/07/03 22:25:07 |
|
|||
안녕하세요 ci2.1.0 사용중인 초보입니다 오늘도 생활코딩 강의 들으며 공부를 하던중에 있었는데 세션으로 ip받아오는거에서 막히는 부분이 생겨서요..ㅠ
아래와 같이 오토로드 세션 설정도 해두었고 config 파일도 아래와 같이 use_database 부분 true 로 설정해서 db에 세션정보를 저장하게끔 했는데 db에 세션정보가 찍히긴 하는데 ip가 왜 0 0 0 0ㅇ로 찍힐까요??ㅠㅠ
127.0.0.1로 받아져야 하는거 아닌가요?? |
|||
다음글 | ci4에서 인쇄버튼기능 (2) | ||
이전글 | crontab 재질문 드려요. (1) | ||
변종원(웅파)
/
2022/07/04 10:43:40 /
추천
0
|
CI3newbi
/
2022/07/04 12:08:21 /
추천
0
로컬(pc) 아니신가요? => 네 로컬입니다 ! 그리고 질문이 잘못되었습니다. 가져오기가 안되는게 아니라 가져온 값이 생각한 것과 다른거죠. => 아아 그렇네요 ㅎㅎ 말씀주셔서 감사합니다! |
변종원(웅파)
/
2022/07/04 13:53:38 /
추천
0
2점대 ci 코어에서 Input.php을 보면 ip_address 라는 함수가 있습니다. 이걸로 세션만들 때 아이피를 가져옵니다. 아래 소스에 의하면 가져온 아이피가 valip_ip함수를 통과하지 못하면 0.0.0.0 으로 강제 할당하고 있습니다. 아래 함수안에서 $this->ip_address 를 화면출력해보세요. public function ip_address() { if ($this->ip_address !== FALSE) { return $this->ip_address; } $proxy_ips = config_item('proxy_ips'); if ( ! empty($proxy_ips)) { $proxy_ips = explode(',', str_replace(' ', '', $proxy_ips)); foreach (array('HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP') as $header) { if (($spoof = $this->server($header)) !== FALSE) { // Some proxies typically list the whole chain of IP // addresses through which the client has reached us. // e.g. client_ip, proxy_ip1, proxy_ip2, etc. if (strpos($spoof, ',') !== FALSE) { $spoof = explode(',', $spoof, 2); $spoof = $spoof[0]; } if ( ! $this->valid_ip($spoof)) { $spoof = FALSE; } else { break; } } } $this->ip_address = ($spoof !== FALSE && in_array($_SERVER['REMOTE_ADDR'], $proxy_ips, TRUE)) ? $spoof : $_SERVER['REMOTE_ADDR']; } else { $this->ip_address = $_SERVER['REMOTE_ADDR']; } if ( ! $this->valid_ip($this->ip_address)) { $this->ip_address = '0.0.0.0'; } return $this->ip_address; } |
CI3newbi
/
2022/07/04 16:40:31 /
추천
0
@변종원(웅파) 넵 답변 감사합니다 ^^퇴근하고 해볼게요~~
|
로컬(pc) 아니신가요?
그리고 질문이 잘못되었습니다. 가져오기가 안되는게 아니라 가져온 값이 생각한 것과 다른거죠.