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地址了。