2013-11-27 4 views
0

JSF 응용 프로그램에서 클라이언트 정보를 얻으려고합니다. 하지만 IP 주소를 얻을 수 있습니다.클라이언트 컴퓨터 도메인 이름/MAC 가져 오기

나는 이것을 시도했다 :

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 
System.err.println(request.getRemoteAddr()); 
System.err.println(request.getRemoteHost()); 

문제 request.getRemoteAddr()request.getRemoteHost() 모두가 IP 주소를 얻을 수 있다는 것입니다.

클라이언트 도메인 이름이나 MAC 주소를 얻을 수있는 방법이 있습니까?

UPDATE (솔루션) : 도메인 이름을 원하는 경우

HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); 

String ipAddress = request.getHeader("X-FORWARDED-FOR"); 
if (ipAddress == null) ipAddress = request.getRemoteAddr(); // IP 

InetAddress addr = InetAddress.getByName(ipAddress); // DOMAIN NAME from IP 
String host = addr.getHostName(); 
+0

[javadoc] (http://docs.oracle.com/javaee/6/api/javax/servlet/ServletRequest.html#getRemoteHost())를 참조하십시오. 이름을 원하면 역방향 조회를 직접해야합니다. –

답변

1

, 당신은 IP 자신을위한 역방향 조회를해야 할 것이다. MAC 주소가 필요하면 마법에 의지해야합니다.

해당 데이터로 무엇을 할 계획입니까? IP 주소가 충분하지 않은 이유는 무엇입니까?

+1

: (직접적으로 일부 Java 메소드를 사용하여 직접 가져올 수 있습니다 ... – gaffcz

+0

Java EE 웹 응용 프로그램에서 Java 코드는 웹 브라우저가 아닌 웹 서버에서 실행됩니다. 웹 브라우저에서 Java 코드를 실행하려면 다음을 수행해야합니다. HTML 애플릿 또는 웹 스타트 애플리케이션을 HTML 페이지에 임베드 할 수 있습니다.이 HTML 페이지는 Java EE/JSF에서 반드시 제공/생성 할 필요는 없습니다. – BalusC

관련 문제