게시판에서 클라이언트 ip를 가져오고 싶은데 어떻게 해야 좋을까요? 채택완료
Copy
제목
작성자
내용
사진업로드
이 부분에서 fb_reip를 클라이언트 IPv4 주소를 가져오고 싶은데 어떻게 해야 하나요?
Copy
package kr.co.trip.mvc.controller.freeboard;
import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import kr.co.trip.mvc.dao.FreeBoardDao;
import kr.co.trip.mvc.service.FreeBoardService;
import kr.co.trip.mvc.vo.FreeBoardVO;
import kr.co.trip.mvc.vo.FreeBoard_CommVO;
@Controller
@RequestMapping("/board")
public class FreeboardController {
//application.properties의 key값으로 설정값을 가져와서 변수에 저장한다.
@Value("${spring.servlet.multipart.location}")
private String filePath;
@Autowired
private FreeBoardService freeBoardService;
@RequestMapping("/boardlist")
public String fBoardList(Model model) {
List flist = freeBoardService.flistback();
model.addAttribute("flist", flist);
return "/board/bbslist";
}
@GetMapping("/boardwrite")
public String fboardForm() {
return "/board/bbswrite";
}
@PostMapping("/fboardInsert")
public String fboardInsert(Model model, @ModelAttribute("flist") FreeBoardVO vo) {
MultipartFile mf = vo.getMfile();
String oriFn = mf.getOriginalFilename();
System.out.println("oriFn : "+oriFn);
StringBuffer path = new StringBuffer(); // [서버경로]
path.append(filePath).append("\\");
path.append(oriFn);
System.out.println("FullPath : "+ path);
File f = new File(path.toString());
try {
mf.transferTo(f);
vo.setFb_file(oriFn);
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
freeBoardService.fwrite(vo);
return "redirect:boardlist";
}
@GetMapping("/boardDetail")
public String fboardCommList(Model model, @RequestParam(required = true) int num, HttpServletRequest request) {
FreeBoardVO detail = freeBoardService.finfo(num);
List listComm = freeBoardService.commList(num);
}
model.addAttribute("detail", detail);
model.addAttribute("listComm", listComm);
return "/board/bbdetail";
}
@GetMapping("/upHit")
public String fBoardHit(Model model, int num) {
freeBoardService.hit(num);
return "redirect:boardDetail?num=" + num;
}
@GetMapping("/chkPwdForm")
public String boardChkPwdForm(Model model, @RequestParam Map param) {
System.out.println("num:" + param.get("num"));
System.out.println("job:"+param.get("job"));
model.addAttribute("map", param);
return "/board/chkpwdForm";
}
@GetMapping("/fbdel")
public String fboardDelete(Model model, int num, HttpSession session) {
if(session.getAttribute("sessionID") == null) {
model.addAttribute("errMsg","삭제 권한이 없습니다.");
return "/board/error";
}else {
freeBoardService.del(num);
return "redirect:boardlist";
}
}
@GetMapping("/fbmod")
public String fboardModify(Model model, int num) {
FreeBoardVO vo = freeBoardService.finfo(num);
model.addAttribute("vo", vo);
return "board/bbsmodify";
}
@PostMapping("/fbUpdate")
public String fboardUpdate(FreeBoardVO vo) {
freeBoardService.up(vo);
return "redirect:boardDetail?num="+vo.getFb_num();
}
이 소스코드에서 어떻게 하는 게 좋을까요?
답변 1개
채택된 답변
+20 포인트
답변에 대한 댓글 1개
�
2년 전
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
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();
이렇게 해보세요 아래 업로드 부분은 동일 한듯 합니다.