我正在努力更新代码以接受客户端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地址。
感谢您的光临。
答案 0 :(得分:1)
您将获得创建连接的客户端使用的地址。
在这种情况下,客户端使用的是临时IPv6地址。
如果连接的客户端使用链接本地地址,则可以获得链接本地地址,但是来自更广泛的互联网的连接不能使用链接本地地址,当连接进入时,您只能获得链接本地地址本地网络和这些连接使用链路本地地址。