테스트 사이트 - 개발 중인 베타 버전입니다

게시판에서 클라이언트 ip를 가져오고 싶은데 어떻게 해야 좋을까요? 채택완료

toto1234 2년 전 조회 2,179

</p>

<p><form method="post" action="fboardInsert" autocomplete="off"</p>

<p>enctype="multipart/form-data"></p>

<p><input type="hidden" name="fb_reip" value="${fb_reip}"></p>

<p><div class="mb-3"></p>

<p><label for="boardTitle">제목</label></p>

<p><input type="text" class="form-control" id="subject" name="fb_subject"</p>

<p>placeholder="제목을 입력해 주세요"></p>

<p></div></p>

<p>
</p>

<p><div class="mb-3"></p>

<p><label for="reg_id">작성자</label></p>

<p><input type="text" name="fb_writer" class="form-control" id="fb_writer"</p>

<p>th:value="${session.sessionNick}" readonly="readonly"></p>

<p></div></p>

<p>
</p>

<p><div class="mb-3"></p>

<p><label for="boardContent">내용</label></p>

<p><textarea class="form-control" rows="5" id="content"</p>

<p>name="fb_content" placeholder="내용을 입력해 주세요"></textarea></p>

<p></div></p>

<p><div class="mb-3"></p>

<p><label for="mfile">사진업로드</label></p>

<p><input type="file" name="mfile" class="form-control" id="mfile"></p>

<p></div></p>

<p><div class="col-sm-10"></p>

<p><img th:src="@{/static/resources/images/noimage.jpg}" id="imgx"</p>

<p>style="width: 210px; border: 1px dotted; margin: 5px 5px;"></p>

<p></div></p>

<p>
 
</p>

<p><div class="container text-center" role="group"></p>

<p><input type="submit" value="글작성" class="btn btn-primary"></p>

<p><input type="button" value="리스트" class="btn btn-danger" onclick="location='boardlist'"></p>

<p></div></p>

<p></form></p>

<p>

이 부분에서 fb_reip를 클라이언트 IPv4 주소를 가져오고 싶은데 어떻게 해야 하나요?

 

</p>

<p>package kr.co.trip.mvc.controller.freeboard;</p>

<p> </p>

<p>import java.io.File;</p>

<p>import java.io.IOException;</p>

<p>import java.util.List;</p>

<p>import java.util.Map;</p>

<p> </p>

<p>import org.springframework.beans.factory.annotation.Autowired;</p>

<p>import org.springframework.beans.factory.annotation.Value;</p>

<p>import org.springframework.stereotype.Controller;</p>

<p>import org.springframework.ui.Model;</p>

<p>import org.springframework.web.bind.annotation.GetMapping;</p>

<p>import org.springframework.web.bind.annotation.ModelAttribute;</p>

<p>import org.springframework.web.bind.annotation.PathVariable;</p>

<p>import org.springframework.web.bind.annotation.PostMapping;</p>

<p>import org.springframework.web.bind.annotation.RequestMapping;</p>

<p>import org.springframework.web.bind.annotation.RequestParam;</p>

<p>import org.springframework.web.multipart.MultipartFile;</p>

<p> </p>

<p>import jakarta.servlet.http.HttpServletRequest;</p>

<p>import jakarta.servlet.http.HttpSession;</p>

<p>import kr.co.trip.mvc.dao.FreeBoardDao;</p>

<p>import kr.co.trip.mvc.service.FreeBoardService;</p>

<p>import kr.co.trip.mvc.vo.FreeBoardVO;</p>

<p>import kr.co.trip.mvc.vo.FreeBoard_CommVO;</p>

<p> </p>

<p>@Controller</p>

<p>@RequestMapping("/board")</p>

<p>public class FreeboardController {</p>

<p>//application.properties의 key값으로 설정값을 가져와서 변수에 저장한다.</p>

<p>@Value("${spring.servlet.multipart.location}")</p>

<p>private String filePath;</p>

<p> </p>

<p>@Autowired</p>

<p>private FreeBoardService freeBoardService;</p>

<p> </p>

<p>@RequestMapping("/boardlist")</p>

<p>public String fBoardList(Model model) {</p>

<p>List<FreeBoardVO> flist = freeBoardService.flistback();</p>

<p>model.addAttribute("flist", flist);</p>

<p> </p>

<p>return "/board/bbslist";</p>

<p>}</p>

<p> </p>

<p>@GetMapping("/boardwrite")</p>

<p>public String fboardForm() {</p>

<p>return "/board/bbswrite";</p>

<p>}</p>

<p> </p>

<p>@PostMapping("/fboardInsert")</p>

<p>public String fboardInsert(Model model, @ModelAttribute("flist") FreeBoardVO vo) {</p>

<p>MultipartFile mf = vo.getMfile();</p>

<p>String oriFn = mf.getOriginalFilename();</p>

<p>System.out.println("oriFn : "+oriFn);</p>

<p> </p>

<p> </p>

<p>StringBuffer path = new StringBuffer(); // [서버경로]</p>

<p>path.append(filePath).append("\\");</p>

<p>path.append(oriFn);</p>

<p>System.out.println("FullPath : "+ path);</p>

<p> </p>

<p>File f = new File(path.toString());</p>

<p>try {</p>

<p>mf.transferTo(f);</p>

<p>vo.setFb_file(oriFn);</p>

<p>} catch (IllegalStateException | IOException e) {</p>

<p>e.printStackTrace();</p>

<p>}</p>

<p> </p>

<p>freeBoardService.fwrite(vo);</p>

<p>return "redirect:boardlist";</p>

<p>}</p>

<p> </p>

<p>@GetMapping("/boardDetail")</p>

<p>public String fboardCommList(Model model, @RequestParam(required = true) int num, HttpServletRequest request) {</p>

<p>FreeBoardVO detail = freeBoardService.finfo(num);</p>

<p>List<FreeBoard_CommVO> listComm = freeBoardService.commList(num);</p>

<p> </p>

<p>}</p>

<p> </p>

<p>model.addAttribute("detail", detail);</p>

<p>model.addAttribute("listComm", listComm);</p>

<p>return "/board/bbdetail";</p>

<p>}</p>

<p> </p>

<p> </p>

<p>@GetMapping("/upHit")</p>

<p>public String fBoardHit(Model model, int num) {</p>

<p>freeBoardService.hit(num);</p>

<p>return "redirect:boardDetail?num=" + num;</p>

<p>}</p>

<p> </p>

<p> </p>

<p> </p>

<p> </p>

<p> </p>

<p>@GetMapping("/chkPwdForm")</p>

<p>public String boardChkPwdForm(Model model, @RequestParam Map<String, String> param) {</p>

<p>System.out.println("num:" + param.get("num"));</p>

<p>System.out.println("job:"+param.get("job"));</p>

<p>model.addAttribute("map", param);</p>

<p>return "/board/chkpwdForm";</p>

<p>}</p>

<p> </p>

<p>@GetMapping("/fbdel")</p>

<p>public String fboardDelete(Model model, int num, HttpSession session) {</p>

<p>if(session.getAttribute("sessionID") == null) {</p>

<p>model.addAttribute("errMsg","삭제 권한이 없습니다.");</p>

<p>return "/board/error";</p>

<p>}else {</p>

<p>freeBoardService.del(num);</p>

<p>return "redirect:boardlist";</p>

<p>}</p>

<p> </p>

<p>}</p>

<p> </p>

<p>@GetMapping("/fbmod")</p>

<p>public String fboardModify(Model model, int num) {</p>

<p>FreeBoardVO vo = freeBoardService.finfo(num);</p>

<p>model.addAttribute("vo", vo);</p>

<p>return "board/bbsmodify";</p>

<p>}</p>

<p> </p>

<p> </p>

<p>@PostMapping("/fbUpdate")</p>

<p>public String fboardUpdate(FreeBoardVO vo) {</p>

<p>freeBoardService.up(vo);</p>

<p>return "redirect:boardDetail?num="+vo.getFb_num();</p>

<p>}</p>

<p>

이 소스코드에서 어떻게 하는 게 좋을까요?

 

 

 

 

 

 

 

 

 

 

 

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
웅푸
2년 전

getRemoteAddr() 함수를 이용하면 될것 같습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

웅프
2년 전
@PostMapping("/fboardInsert")
public String fboardInsert(Model model, @ModelAttribute("flist") FreeBoardVO vo) {
String clientIP = null;
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes != null) {
HttpServletRequest request = attributes.getRequest();
WebAuthenticationDetails details = (WebAuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails();
clientIP = details.getRemoteAddress();
}
vo.setFb_reip(clientIP);

MultipartFile mf = vo.getMfile();

이렇게 해보세요 아래 업로드 부분은 동일 한듯 합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인