사용자의 IP를 가져오는 방법으로는 흔히 HttpServletRequest에 접근하여 아래와 같은 메소드를 호출 하는 방법이 있습니다.
request.getLocalAddr(); request.getRemoteAddr() |
하지만 실제로 해보면 0:0:0:0:0:0:0:1와 같은 값을 뱉어내게 되는데 이는 IPv6의 값으로 IPv4로 변환하면 127.0.0.1 즉 기본적인 루프백 값을 뱉게 됩니다. 이 때 실제 아이피를 가져오기 위해서는 이클립스의 환경변수를 건드리는 방법이 있긴 한데 귀찮으니 다른 방법을 찾았습니다.
java.net 에 속해있는 Inet4Address.getLocalHost() 메소드를 사용합니다.
반환 값은 InetAddress이며 출력해보면 심해펭귄/210.211.232.222 와 같은 식으로 컴퓨터의 이름과 아이피를 가져오게 됩니다.
아이피만 가져오고 싶다면 아래처럼 getHostAdress 메소드에 접근하면 됩니다.
Inet4Address.getLocalHost().getHostAddress() // IPv4 아이피가 출력됩니다. |