
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地址段访问限制是在应用过滤器实现的,比如: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>
假如用代理服务器,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,你保存到数据库或者缓存中,就由你自己了
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)