确定Java RMI调用的远程客户端IP地址

6

当我实现一个RMI服务器(实现扩展java.rmi.Remote的接口)时,有没有一种方法可以获取有关当前RMI请求上下文的信息,特别是远程客户端的IP地址?

public void myMethod() throws RemoteException {

    log.info("remote IP is "+ RMISomething.getSomething());

}
1个回答

13

链接已更改为:RemoteServer 您的Server类必须扩展RemoteServer、UnicastRemoteObject或Activatable。 - Christof Aenderl
1
@chrise,你的第二句话是不正确的。这就是为什么提供了UnicastRemoteObject.exportObject(),以及为什么RemoteServer.getClientHost()是静态的。 - user207421
它是否也提供端口号? - Cybermonk
@Cybermonk,正如您通过他提供的链接查看时所看到的那样,它返回客户端主机的“String”表示形式。我不知道为什么你要在这个十一年前的答案的评论中问问题,而不是自己查找答案。正如您所看到的,这只是浪费了两个月的时间。 - user207421
那个链接没有提到端口。 "字符串表示" 是含糊不清的,也可能包含端口 "localhost:8080"。如果每个人都可以查找,为什么我们还需要 QA 论坛呢?好吧,在创建测试类后回答我的问题,发现端口不可用。 - Cybermonk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接