【发布时间】:2014-10-06 03:27:11
【问题描述】:
我需要知道客户的 IP 地址,这是我的鳕鱼
public static void main(String[] args) throws Exception {
server = HttpServer.create(new InetSocketAddress(8000), 0);
server.createContext("/", new MyHandler());
server.setExecutor(null); // creates a default executor
server.start();
System.out.println("Client ip is: " + server.getAddress().getAddress());
}
处理程序:
public static class MyHandler implements HttpHandler {
@Override
public void handle(HttpExchange t) throws IOException {
t.getRemoteAddress().getAddress(); // t is 0:0:0:0:0:0:0:
}
}
结果:
Client ip is: /0:0:0:0:0:0:0:0
为什么我无法获取真实客户的 ip?
【问题讨论】:
-
5326将是端口号,而不是 IP 地址。 -
@vandale My 表示除
0:0:0:0:0以外的任何其他号码 -
server.getAddress()如何返回客户地址?这似乎合乎逻辑,这将返回服务器绑定的地址。您应该检查客户端连接时会发生什么... -
@GPI 那么,我怎样才能获得客户的 ip?
-
我认为你是在本地运行客户端和服务器,请尝试在单独的计算机上运行客户端
标签: java