当接受客户端连接时,服务器检索什么ip6地址

时间:2018-01-12 17:46:11

标签: ip ipv6 ipv4

我正在努力更新代码以接受客户端ip6地址。

我的代码通常会打开一个服务器套接字并侦听传入的客户端连接,一旦连接了客户端,它将检索IP地址并连接到差异端口上的客户端(对于我们不同的工作流程)。

目前我检索连接的客户端套接字的IP地址,如下所示:

Socket socket = m_serverSocket.accept(); String ipAddress = socket.getInetAddress().getHostAddress();

如果我使用与上面相同的代码来接受ip6客户端套接字连接,那么我应该更改我的代码以正确检索ip6地址。

我问这个,因为ip6地址有多个如下:    IPv6地址。 。 。 。 。 。 。 。 。 。 。 :ab34:342:34d:234:234b:df44:5c0:401d    临时IPv6地址。 。 。 。 。 。 :3450:2e2:87c:984:edad:3452:7635:f654    链路本地IPv6地址。 。 。 。 。 :vf80 :: 432b:f654:6f0:572e%11

当我从上面的系统建立客户端连接时,我通过服务器套接字获取临时ipv6地址作为ip地址。

它是否会在服务器套接字上获得传入客户端套接字连接的链接本地ipv6地址?

我问这个的原因是因为如果客户端套接字提供链接本地ipv6地址,我需要解析正确的ip6地址。

感谢您的光临。

1 个答案:

答案 0 :(得分:1)

您将获得创建连接的客户端使用的地址。

在这种情况下,客户端使用的是临时IPv6地址。

如果连接的客户端使用链接本地地址,则可以获得链接本地地址,但是来自更广泛的互联网的连接不能使用链接本地地址,当连接进入时,您只能获得链接本地地址本地网络和这些连接使用链路本地地址。