首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >6-如何在适配器端获取客户端IP地址

6-如何在适配器端获取客户端IP地址
EN

Stack Overflow用户
提问于 2014-02-12 06:46:43
回答 1查看 1.1K关注 0票数 0

我希望在适配器端有客户端的ip地址,但我不知道这方面的worklight api是什么。我寻找它,但没有运气。

我在客户端代码上使用了这个api,如下所示

代码语言:javascript
复制
WL.Device.getNetworkInfo(function (networkInfo) {
        console.log ("Ip address of device "+networkInfo.ipAddress);
       });

它工作得很好,我可以将它从客户端传递给适配器。但我只想知道是否可以在适配器过程中在服务器端实现相同的功能。

我还使用了以下代码

代码语言:javascript
复制
var request = WL.Server.getClientRequest();
    var userAgent = request.getHeader("User-Agent");

我们可以在这里使用此API在适配器过程中获得Ip地址吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-12 11:42:56

WL.Server.getClientRequest()将返回对HttpServletRequest Java对象(http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html)的引用。你可以使用Java来获取你需要的信息。

代码语言:javascript
复制
var request = WL.Server.getClientRequest();
request.getRemoteAddr()
request.getRemoteHost()

请注意,如果客户端和WL服务器之间存在网关/代理(很可能存在),上面的API将为您提供有关代理的信息。如果您需要实际的设备IP,您可以使用

代码语言:javascript
复制
var request = WL.Server.getClientRequest();
var IPAddress = request.getHeader('x-forwarded-for'); 

更新:

为了遍历标头枚举并获得请求头的完整列表,请使用以下代码:

代码语言:javascript
复制
    var headers = {};

var request = WL.Server.getClientRequest();
var headerNames = request.getHeaderNames();
while (headerNames.hasMoreElements()){
    var headerName = headerNames.nextElement();
    var headerValue = request.getHeader(headerName);
    headers[headerName] = headerValue;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21720621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档