簡體   English   中英

如何獲取Web服務客戶端的IP地址?

[英]How to get IP address of a web service client?

我使用Eclipse(luna),Tomcat8和Axis2創建了一個Web服務,為此,我用Java編寫了一個類'AddOperator',將服務定義如下:

public class AddOperator {
    public int add(int x,int y) {
        return x+y;
    }
}

我還創建了一個使用以下“ AddClientOpp”類來精簡此服務的客戶端:

public class AddClientOpp {
    public static void main(String[] args) throws RemoteException  {
        AddOperatorStub stub = new AddOperatorStub();

        Add add = new Add();
        add.setX(25);
        add.setY(30);

        System.out.println(stub.add(add).get_return());
    }
}  

現在,我需要獲取構成我的Web服務的客戶端IP地址。 我搜索了一下,發現一些方法和部分代碼可以執行此操作,例如:

import javax.servlet.http.HttpServletRequest;

//...

private static String getClientIp(HttpServletRequest request) {
    String remoteAddr = "";

    if (request != null) {
        remoteAddr = request.getHeader("X-FORWARDED-FOR");
        if (remoteAddr == null || "".equals(remoteAddr)) {
            remoteAddr = request.getRemoteAddr();
        }
    }
    return remoteAddr;
}

要么:

import java.net.*;
import java.io.*;
import java.applet.*;

public class GetClientIP extends Applet {
    public void init() {
        try {
           InetAddress Ip =InetAddress.getLocalHost();
           System.out.println("IP:"+Ip.getHostAddress());
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
}

但是我不知道將這些代碼部分或方法集成到上述我的Web服務創建過程中的地方!!

如果有人對我有想法,請告訴我我該怎么做。 對我的項目來說非常重要!

謝謝。

您可以使用以下代碼來檢索客戶地址:

MessageContext.getCurrentMessageContext().getProperty(MessageContext.REMOTE_ADDR)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM