![](/img/trans.png)
[英]How to get Remote / Client IP address using RESTful web service in java?
[英]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.