Come si ottiene l'IP del client e le informazioni del browser tramite JSP?Come ottenere le informazioni del browser in JSP?
risposta
Per la parte browser è necessario analizzare la sezione User-Agent di reqeust.
String browserType = request.getHeader("User-Agent");
Lì troverai le informazioni rilevanti ...
ServletRequest.getRemoteAddr() o l'intestazione X-Forwarded-For, se pensi di potertene fidare.
Che tipo di informazioni del browser? Le intestazioni delle richieste avranno l'agente utente.
Here si possono trovare getRemoteAddr(), che
Restituisce il nome completo del cliente o l'ultimo proxy inviato la richiesta
... e con questo si (forse) di recuperare il browser
request.getHeader("User-Agent")
È possibile ottenere tutte le informazioni che il cliente è disposto a fornire tramite le intestazioni HTTP. Here c'è un elenco completo di loro.
Per accedere l'intestazione in un servlet o JSP, utilizzare:
request.getHeader ("nome-of-the-header-you-want");
Il seguente jsp uscita volontà il vostro indirizzo IP e user-agent:
Your user-agent is: <%=request.getHeader("user-agent")%><br/>
Your IP address is: <%=request.getRemoteAddr()%><br/>
per scoprire che cosa browser e/o OS l'utente sta utilizzando, analizzare l'intestazione user-agent.
Ad esempio:
<%
String userAgent = request.getHeader("user-agent");
if (userAgent.indexOf("MSIE") > -1) {
out.println("Your browser is Microsoft Internet Explorer<br/>");
}
%>
Per un elenco di agenti utente, guardare here.
String browser=request.getHeader("user-agent");
String browsername = "";
String browserversion = "";
String[] otherBrowsers={"Firefox","Chrome","Chrome","Safari"};
if(browser != null){
if((browser.indexOf("MSIE") == -1) && (browser.indexOf("msie") == -1)){
for(int i=0; i< otherBrowsers.length; i++){
System.out.println(browser.indexOf(otherBrowsers[i]));
browsername=otherBrowsers[i];
break;
}
String subsString = browser.substring(browser.indexOf(browsername));
String Info[] = (subsString.split(" ")[0]).split("/");
browsername = Info[0];
browserversion = Info[1];
}
else{
String tempStr = browser.substring(browser.indexOf("MSIE"),browser.length());
browsername = "IE"
browserversion = tempStr.substring(4,tempStr.indexOf(";"));
}
}