jsp訪問者ip
『壹』 jsp頁面如何獲取本機IP地址
jsp獲得本機的公網ip可以使用jsp中的request對象中的方法獲得IP地址,如下:
/ 獲得ip地址
public static String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();//拿到本地IP地址
}
return ip;
}
『貳』 jsp怎麼獲得ip地址面試題
如果你在本地使用localhost或127.0.0.1地址來測試,那隻能獲取到127.0.0.1,而對於外網訪問者,是一定可以獲取得到他的真實IP的。 String realIP=request.getHeader("x-forwarded-for");
String ip = request.getRemoteAddr();
if(realIP==null||realIP.length()==0)
{
out.println("真實IP:"+ip);
}
else
{
out.println("真實IP:"+realIP);
}
『叄』 jsp 網頁如何設置IP地址段訪問限制
jsp 網頁設置IP地址段訪問限制是在應用過濾器實現的,比如:
blacklistedip中配置需要限制的ip地址。
import javax.servlet.*;
import java.io.IOException;
public class BlackListFilter implements Filter
{
private String blacklistedip;
@Override
public void init(final FilterConfig filterConfig) throws ServletException
{
this.blacklistedip = filterConfig.getInitParameter("blacklistedip");
}
@Override
public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain filterChain) throws IOException, ServletException
{
if (!request.getRemoteAddr().equals(this.blacklistedip))
{
filterChain.doFilter(request, response);
}
}
@Override
public void destroy()
{
// nothing
}
}
配置如下:
<filter>
<filter-name>IPFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>IPFilter</filter-name>
<servlet-name>MyServlet123</servlet-name>
</filter-mapping>
『肆』 如何用EL表達式語言取得訪問次數與訪問者ip;jsp代碼如下:
1、訪問次數統計:
<%
int num=0;
if(application.getAttribute("num")!=null){
num= (Integer)application.getAttribute("num");
num +=1;
application.setAttribute("num",num);
}
%>
顯示:<%=num%>
2、獲取ip
<%!public String getIpAddr(HttpServletRequest
request) {
String ip =
request.getHeader("x-forwarded-for");
if(ip ==
null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
{
ip =
request.getHeader("Proxy-Client-IP");
}
if(ip ==
null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
{
ip =
request.getHeader("WL-Proxy-Client-IP");
}
if(ip ==
null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip))
{
ip =
request.getRemoteAddr();
}
return
ip;
}%>
顯示
<%=getIpAddr(request);%>
ps:第二個獲取ip你自己試下
『伍』 怎樣在jsp中記錄訪問網頁的IP地址
假如用代理伺服器,request.getRemoteAddr(); 只能得到代理伺服器地址,以下方法是得到正確所有ip的方法
在jsp聲明這個函數
<%!public String getIpAddr(HttpServletRequest request) {
String ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
return ip;
}%>
嵌入jsp網頁中,然後用<%String ip=getIpAddr(request);%>得到訪問者ip
ip就是訪問者的ip,你保存到資料庫或者緩存中,就由你自己了
『陸』 jsp怎麼獲取訪問者的ip地址
在JSP中,獲取客戶端IP的方法為:request.getRemoteAddr()。這種方法在大部分情況下都是有效的,但是在通過了Apache,Squid等反向代理軟體就不能獲取到客戶端的真實IP地址了。