【知識積累】伺服器端獲取客戶端的IP地址(當客戶端呼叫由Axis開發的WebService)

leesf發表於2016-02-25

一、前言

  由於專案中一個小的模組需要獲取客戶端的IP地址以保證安全呼叫webservice介面,專案中客戶端使用C#編寫,伺服器端使用Java編寫,伺服器端與客戶端採用Axis開發的WebService進行通訊。伺服器端維護IP白名單列表,只有IP地址在白名單中的客戶端才可以成功呼叫到介面,獲得服務。

二、程式碼清單

  若要成功獲取客戶端IP地址,需要如下Jar包的支援。

  servlet-api.jar

  axis.jar

  axis2-kernel-1.6.2.jar

  獲取IP地址的具體程式碼如下:

import org.apache.axis.MessageContext;
import org.apache.axis.transport.http.HTTPConstants;

public class MyWebService {
    public String getIPs() throws IOException {
        MessageContext mc = MessageContext.getCurrentContext();
        HttpServletRequest request = (HttpServletRequest)mc.getProperty(HTTPConstants.MC_HTTP_SERVLETREQUEST);
        String clientIP = request.getRemoteAddr();
        return clientIP;
    }
}
View Code

  具體的Jar下載連結如下:

  http://download.csdn.net/detail/leesf456/9443876

  一個小功能,希望對有需要的園友有所幫助。

三、總結

  多思考,多查閱資料,總會有解決辦法,多記錄,利於自己,方便他人,謝謝各位園友觀看~

相關文章