来自:jiaguwen123
记录下,以后备用
Java开发的WebService获取客户端IP地址
1:基于jax-ws开发的webservice获取客户端ip的方法【在代理类XXXDelegate添加如下代码】
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.xml.ws.WebServiceContext;
import javax.xml.ws.handler.MessageContext;
@Resource
private WebServiceContext wsContext;
private String getClientInfo(){
MessageContext mc = wsContext.getMessageContext();
HttpServletRequest request = (HttpServletRequest)(mc.get(MessageContext.SERVLET_REQUEST));
String remortAddress = request.getRemoteAddr();
return (remortAddress);
}
2.基于axis发布的webservice获取客户端ip的方法
/**
* 获取客户端IP地址,如调用方的IP,以便检查权限。
* 适用于axis发布的webservice
* @return
*/
public String getClientIpAxis() {
MessageContext mc = null;
HttpServletRequest request = null;
try {
mc = MessageContext.getCurrentMessageContext();
if (mc == null)
throw new Exception(“无法获取到MessageContext”);
request = (HttpServletRequest) mc
.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
System.out.println(“remote ip: ” + request.getRemoteAddr());
} catch (Exception e) {
System.out.println(e.getMessage());
e.printStackTrace();
}
return request.getRemoteAddr();
}
3.基于xfire发布的webservice获取客户端ip的方法
/**
* 获取客户端IP地址
* 适用于xfire发布的webservice
* @return
*/
public String getClientIpXfire() {
String ip = “”;
try {
HttpServletRequest request = XFireServletController.getRequest();
ip = request.getRemoteAddr();
} catch (Exception e) {
System.out.println(“无法获取HttpServletRequest.”);
e.printStackTrace();
}
return ip;
}
4:场景: 客户端--->bs服务器--->ws服务器 (未验证
)
GetSOAPWebModule.Request.RemoteAddr;
// 通过代理,获取真实的ip
if(Context.Request.ServerVariables["HTTP_VIA"]!=null)
{
ip=Context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
}
else
{
ip=Context.Request.ServerVariables["REMOTE_ADDR"].ToString();
}
// 或客户端获取再通过方法传递给服务器
分享到:
相关推荐
一、前言由于项目中一个小的模块需要获取客户端的IP地址以保证安全调用webservice接口,项目中客户端使用C#编写,服务器端使用Java编写,服务器端与客户
#### 获取客户端IP地址的方法 无论采用哪种方式获取`HttpServletRequest`对象,我们都可以利用它来获取客户端的IP地址。下面是一个简单的示例方法,用于从`HttpServletRequest`对象中提取客户端IP地址: ```java ...
这个示例可能使用了某个这样的API,将接收到的IP地址转换为对应的城市信息。 7. **省份查询城市**:这个功能可能涉及到省级行政区划的数据处理,可能需要一个省份到城市映射的数据库或者API。这可能需要从外部源...
本教材将详细介绍如何使用CXF实现WebService,并重点讲解在不同的Web服务框架中获取客户端IP地址的方法。 #### 二、WebService基础概念 1. **SOAP (Simple Object Access Protocol)**:一种轻量级协议,用于在Web...
### BOS 开发 WebService 实践指南 #### 一、简介 在企业级应用开发中,Web Service 技术作为一种重要的远程服务调用方式被广泛采用。金蝶BOS(Business Operation System)作为一款功能强大的业务操作系统,支持...
腾讯地图WebService地址解析接口是一种基于Web服务的技术,用于将地理坐标(经纬度)转换为具体的行政区域地址。这种接口在处理地理位置数据时非常有用,尤其是在分析用户行为、位置跟踪或提供定位服务的场景中。...
在本案例中,"webservices查询IP地址"指的是使用Web服务来获取客户端的IP信息,或者输入特定IP地址以查询其相关详情。这在分布式系统、网络监控、数据分析等领域非常常见,因为它能帮助我们识别和跟踪网络活动。 IP...
以下是对CXF Webservice动态地址客户端相关知识点的详细解释: 1. **CXF客户端API**:CXF提供了两种主要的客户端API,即JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。...
【WebService开源程序---天气预报查询---IP查询(最新)】是一个基于Java技术的开源项目,主要功能是通过Web服务接口实现天气预报和IP地址查询。这个项目使用了Eclipse作为集成开发环境,并部署在Tomcat服务器上运行。...
这里的IP地址应替换为实际部署MAS服务器的IP地址。 **2. 接口方法** #### (1) sendSM 方法 **功能**:用于发送一条MT短信至单个或多个手机号码。 **参数**: - **apicode**:接口编码,必填项。 - **loginName*...
`:获取客户端IP地址。 - `int destport = client.getPort();`:获取客户端端口号。 - `String inline = instream.readLine();`:读取客户端发送的数据。 - **功能说明**: - 每当有新的客户端连接时,都会创建...
- **客户端**则创建一个`Socket`对象,并通过该对象连接到服务端指定的IP地址和端口号。 - 客户端和服务端可以通过`InputStream`和`OutputStream`来进行数据的读写操作。 ##### 代码示例 下面给出的是服务端和...
5. **生成客户端代码**: 使用命令行工具(如WSDL2Java)生成客户端代码,这里使用的是Apache CXF的命令`wsimport`,并指定了源目录、包名和WSDL地址。 6. **调用Web Service**: 客户端代码中,通过`...
实际应用中应该将该值设置为你自己的服务器IP地址或其他标识,如 `http://172.16.230.50/`。 - 这个命名空间将在客户端的SOAP请求中出现,并且在生成的代理类中作为基础。 3. **服务方法**: - 使用 `[WebMethod]...
如果Web服务端和客户端在不同的域或IP地址上,可能还会涉及到跨域安全和权限认证的问题。此外,在实际部署时还需要考虑网络环境、性能优化和安全加固等因素。 以上知识点总结了在Java中处理SOAPHEADER的Web服务请求...
- **Destination**:指定目标Web Service的IP地址和端口号。 2. **监控SOAP请求**: - 通过配置好的本地端口发送SOAP请求。 - 可以实时查看SOAP请求和响应的具体内容,便于调试和问题排查。 #### 五、具体步骤 1...
- 如果BIEE服务器与Java应用不在同一台机器上,需要处理网络连接问题,如IP地址替换。 2. **调用代码说明** - **登录验证**: - 在进行任何操作前,必须先通过SAWSessionServiceSoapProxy代理类的logonex方法...
下面是一个具体的例子,展示如何使用Handler来进行客户端IP地址的验证。 ```java package com.webservice; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java....