在javase环境中,jersey+grizzly2技术中 中如何获取客户端ip地址?在线等。。

在javase环境中,jersey+grizzly2技术中 中如何获取客户端ip地址?在线等。。

0

2个回答

取决于你的应用服务器 grizzly2是否有前端web服务器, 如nginx, 有的话要处理代理头.

如nginx,可能有如下设置

  proxy_set_header    X-Forwarded-For     $remote_addr;


对于ipv4, 可以这样搞


    public static boolean isLocalOrUnknow(String ipaddress) {
    return ipaddress == null || ipaddress.length() == 0
            || "unknown".equalsIgnoreCase(ipaddress)
            || ipaddress.equals("127.0.0.1")
            || ipaddress.startsWith("192.168.")
            || ipaddress.startsWith("172.16.")
            || ipaddress.startsWith("172.17.")
            || ipaddress.startsWith("172.18.")
            || ipaddress.startsWith("172.19.")
            || ipaddress.startsWith("10.");
}

private static boolean isUnknow(String ipaddress) {
    return ipaddress == null || ipaddress.length() == 0
            || "unknown".equalsIgnoreCase(ipaddress)
            || ipaddress.equals("127.0.0.1");
}

public static String getClientIP(HttpServletRequest request) {
    String ipaddress = null;// request.getHeader("HTTP_X_FORWARDED_FOR");

    // Enumeration e = request.getHeaderNames();
    // while(e.hasMoreElements()){
    // Object s = e.nextElement();
    // System.out.println("HEADER: "+s+"="+request.getHeader(s.toString()));
    // }

    if (isLocalOrUnknow(ipaddress)) {
        ipaddress = request.getHeader("X-Real-IP");
        if (isLocalOrUnknow(ipaddress)) {
            ipaddress = request.getHeader("Proxy-Client-IP");
            if (isLocalOrUnknow(ipaddress)) {
                ipaddress = request.getHeader("WL-Proxy-Client-IP");
                if (isLocalOrUnknow(ipaddress)) {
                    ipaddress = request.getHeader("HTTP_CLIENT_IP");
                    if (isLocalOrUnknow(ipaddress)) {
                        ipaddress = request.getHeader("X-Forwarded-For");
                        if (isLocalOrUnknow(ipaddress)) {
                            ipaddress = request
                                    .getHeader("X-Originating-IP");
                            if (isLocalOrUnknow(ipaddress)) {
                                ipaddress = request
                                        .getHeader("HTTP_REMOTE_ADDR");
                            }

                            if (isUnknow(ipaddress)) {
                                ipaddress = request
                                        .getHeader("REMOTE_ADDR");

                            }
                        }

                    }

                }

            }

        }

    }

    if (isUnknow(ipaddress)) {
        ipaddress = request.getRemoteAddr();
    }
    return ipaddress;
}
1

@GET
@Path("/yourservice")
@Produces("text/xml")
public String activate(@Context HttpServletRequest requestContext,@Context SecurityContext context){

String ipAddressRequestCameFrom = requestContext.getRemoteAddr();

//Also if security is enabled
Principal principal = context.getUserPrincipal();
String userName = principal.getName();

}

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
jersey中获取请求ip
@GET              @Produces(MediaType.TEXT_PLAIN)              public String validate(@DefaultValue("") @QueryParam("authCode") String aut
基于Jersey的Rest服务记住客户端状态
基于Jersey发布的Rest服务想要保持每个客户端的访问状态,可通过注入request获取session实现。
在javase环境中,jersey+grizzly2技术中 中如何获取客户端ip地址?在线等。。
在javase环境中,jersey+grizzly2技术中 中如何获取客户端ip地址?在线等。。
初探RESTful——使用Grizzly和Jersey搭建RESTful环境
Grizzly:轻量级Web容器,用来运行RESTful服务,类似于Tomcat Jersey:是一个开源的、产品级别的JAVA框架,支持JAX-RS API并且是一个JAX-RS(JSR 311和 JSR 339)的参考实现,简单的说,就是写RESTful服务用的。 Grizzly的相关的依赖:     org.glassfish.grizzly     grizzl
Java--获取Request请求的客户端IP地址
下面是获取方式,作为笔记: public class IPUtil { /** * 获取request的客户端IP地址 * * @param request * @return */ private static String getIpAdrress(HttpServletRequest request) { String ip = request.getHea...
Servlet-request获取客户端ip地址,操作系统,浏览器等信息
Servlet-request获取客户端ip地址,操作系统,浏览器等信息     package day10_1; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; im...
获取请求的IP地址
 /**   * 获取用户真实IP地址,不使用request.getRemoteAddr();的原因是有可能用户使用了代理软件方式避免真实IP地址, 参考文章:   * http://developer.51cto.com/art/201111/305181.htm   *   * 可是,如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,究竟
UserAgentUtils-1.20
【用于通过从request请求中的User-Agent中获取客户端浏览器类型、客户端操作系统、ip地址等信息】
UserAgentUtils-1.13.jar
通过从request请求中的User-Agent中获取客户端浏览器类型、客户端操作系统、ip地址等信息
通过Jersey客户端API调用RestFul风格的Web服务
Jersey 客户端 API 基础1.要开始使用 Jersey 客户端 API,你首先需要创建一个 com.sun.jersey .api.client.Client 类的实例 代码: import com.sun.jersey .api.client.Client;     Client client = Client.create();说明:Client 类是创建一个 RESTful Web
Linux环境下服务器利用组播来获取客户端IP
linux环境中,在通信双方互相不知对方IP的情况下,使用组播传输来获取对方IP。主要内容有如何获取本机IP地址和主机名以及组播传输两方面内容。
Asp.net Request方法获取客户端的信息
Response.Write("客户端计算机名:" + Request.UserHostName + "<BR />"); Response.Write("客户端IP:" + Request.UserHostAddress + "<BR />"); Response.Write("浏览器:" + Request.Browser.Browser + &
关于filter中获取远程请求地址的的方法
这个问题考虑了很久,网上找了很久没看到,昨天这个问题终于弄清楚了,下面是这段代码 public class Myfilter implements Filter { public void destroy() { } private HttpServletRequest request; private HttpServletResponse response; ...
asp.net 获取客户端浏览器,ip地址,操作系统信息
public class CheckIP { #region 获取浏览器版本号 /// /// 获取浏览器版本号 /// /// public static string GetBrowser() { HttpBrowserCapabilities bc = HttpContext.Current.Request.Browser; return bc.Browser + bc.Version; }
根据客户端套接字获取客户机的IP和端口号,其形式为IP:port
char *sock_ntop(const struct sockaddr *sa, socklen_t salen) { char portstr[7]; static char str[128]; switch (sa->sa_family) { case AF_INET: { struct sockaddr_in *sin = (struct sockaddr
如何查看发起session的客户端ip地址
在oracle中的v$session视图中可以保存有会话的想关信息,包括了客户端的大部分连接信息。其中我们可以将会话的发起ip地址写入到client_identifier和client_info 上文中我们提到了使用userenv函数或者sys_context函数可以获得当前会话的相关信息,其中就包含的有ip_address这一项 当我们使用client_identifier字段来保存登录会话
获取局域网内在线主机名及IP地址源码
使用的核心命令是“net view”,全循环变量模式!源码如下:@echo off&title 获取局域网内在线主机名及IP地址 for /f "skip=3 delims=\" %%a in ('net view') do for /f %%a in ("%%a") do if not "%%a"=="命令成功完成。" set /p=%%a<nul&for /f "del
request请求中通过过滤获取准确IP地址
/** * @Title: I6000 Ip地址过滤器 * @Description: I6000 访问服务端进行的ip地址过滤 * @Copyright: Copyright (c) 2018 * @Company:北京易联通达有限公司 * * @author hyn * @version 1.0 */ @Service public class WebserviceFilte...
js 客户端 mac ip 地址
js 在IE浏览器中获取客户端IP、Mac地址。
ASP.NET CORE获取客户端IP扩展类
public static class HttpContextExtension { public static string GetClientUserIp(this HttpContext context) { var ip = context.Request.Headers["X-Forwarded-For"].FirstOrD...
Remoting 获取客户端IP地址
网络文章一大抄真是不假,为了解决在Remoting中获取客户端IP的问题,Google,Baidu了许多文章, 都一个样,真是气死。不过好歹调试通了,把代码贡献出来: http://wenku.baidu.com/view/e8ae2cc189eb172ded63b78e.html 采用Sink方式,至于这个Sink到底是什么原理,还没搞明白,我想大概是和Filter一类的管道类似吧,不
Asp.Net获取电脑名,IP地址及当前用户名,操作系统,浏览器,.NET版本等信息的方法
 1. 在ASP.NET中专用属性:    获取服务器电脑名:Page.Server.ManchineName    获取用户信息:Page.User    获取客户端电脑名:Page.Request.UserHostName    获取客户端电脑IP:Page.Request.UserHostAddress    2. 在网络编程中的通用方法:    获取当前电脑名:static System.
请求Requst中获取访问请求的客户端IP
请求Requst中获取访问请求的客户端IP 在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid,nginx等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://wwwjbbe
从request中获取客户端IP地址
/** * 从request中获取请求方IP * @param request * @return */ public static String getIpAddress(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if...
JSP如何获取客户端真实IP地址
JSP如何获取客户端真实IP地址 投稿:lijiao 字体:[增加 减小] 类型:转载 时间:2015-10-02 我要评论 这篇文章主要介绍了JSP如何获取客户端真实IP地址,需要的朋友可以参考下 . . 在JSP中,获取客户端IP的方法为:request.getRemoteAddr()。这种方法在大部分情况下都是有效的,但是在通过了Apache,Squid等反向代
Servlet中获取客服端Ip地址
在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。 在实习公司看
【IP地址获取】java获取客户端ip地址
如何获取客户端ip和url访问中服务器端ip(如果是ip,不是域名)呢? String requestUrlIP = request.getServerName(); tring userIpAddr = request.getRemoteAddr(); System.out.println("***访问的Url中的服务器IP:"+requestUrlIP); System.out.print...
在socket编程中,如何获取连接另一端(客户端)的ip地址,使用accept或者getpeername
//这段代码没有实际的功能,只是为了获取连接另一端的ip地址 #include #include #include #pragma comment(lib, "wsock32") using namespace std; void main() { int ret = 0; WSADATA wsadata; WORD version = MAKEWORD(2
统计在线已登录用户数量并获取客户端IP(涉及HttpSessionListener监听)
项目需要做一个统计在线登陆用户数量的功能。 首先我想到的是写HttpSessionListener监听,根据session来确定用户数量。     步骤: web.xml配置HttpSessionListener监听 org.hd.base.listener.HDSessionListener 监听的类: package org.hd.base.listener;
获取客户端访问真正的IP地址
可以获取真正的IP public static String getRealIpAddr(HttpServletRequest req) { String ip = req.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 ||"unknown".equalsIgnoreCase(ip)) {
通过UDP广播获取网络中所有设备ip地址
说明: 源码下载地址:http://download.csdn.net/detail/dxzysk/9756896 源码使用说明,先在需要获取IP地址的主机上运行server端程序,然后在需要搜索主机的Pc上运行client端程序 本文是windows版,VC++,在VS2010环境下调试成功。有时候需要搜索网络中的设备,机器,服务器等,这就要要用到UDP广播的方式,发送广播命令,广播给网络
获取IP通过HttpServletRequest
获取IP通过HttpServletRequest获取IP通过HttpServletRequest
SpringMVC获得客户端的IP地址(草稿)
参考http://blog.csdn.net/duzhanxiaosa/article/details/43833973
JAVA之——获取来访者IP、浏览器版本、系统版本、主机名、Mac地址等信息(插曲)
不多说,直接上代码 package com.cdsmartlink.utils.system; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.r
Apache mina 获取远程客户端IP
项目用mina做,有个需求需要获取远程客户端的ip        于是我找了找。发现session有个方法可以获得。        session.getRemoteAddress().toString();        只是得到的dd是ip+端口号,如:/59.64.40.137:5410        很奇怪得不到ip,不过得到这个也行了,把里面的ip自己截出来就行了
从http协议中获得客户端ip
全文链接 import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; public final class InternetProtocol { private static Logger log = Logger.getLogger(InternetProtocol.class
微服务获取访问客户端的真是ip
1.网关添加过滤器:   2.微服务获取ip:      
Jersey 简单试用
Jersey的入门例子
Socket获取客户端IP地址及端口号
Socket类包含一些非常有用的属性,这些属性允许确定关于正在连接的客户端的信息。其中关键信息之一是返回EndPoint对象的RemoteEndPoint属性。EndPoint类本身是抽象的,要想收集有用的信息,需·要把EndPoint强制类型转换为IPEndPoint对象。IP
获取客户端IP地址定位城市信息
获取客户端IP地址定位城市信息     1、首先获取客户端的IP地址   function getIPaddress(){ $IPaddress=''; if (isset($_SERVER)){ if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java中关键学习的技术 数据库技术应用等课程