I am working on updating the code to accept client ip6 address.
My code generally opens a server socket and listens for incoming client connections, once a client is connected, will retrieve the ip address and connect back to the client on a diff port (for our different workflows).
Currently I retrieve the ip address of the connected client socket as follows:
Socket socket = m_serverSocket.accept();
String ipAddress = socket.getInetAddress().getHostAddress();
If I am using the same code as above for accepting ip6 client socket connections, then should I change my code to correctly retrieve the ip6 address.
I am asking this since ip6 address have multiple as follows: IPv6 Address. . . . . . . . . . . : ab34:342:34d:234:234b:df44:5c0:401d Temporary IPv6 Address. . . . . . : 3450:2e2:87c:984:edad:3452:7635:f654 Link-local IPv6 Address . . . . . : vf80::432b:f654:6f0:572e%11
When I am making a client connection from above system, I am getting the temporary ipv6 address as the ip address by the server socket.
Will it ever get a link-local ipv6 address on the server socket for the incoming client socket connection?
The reason I ask this is because I need to parse the correct ip6 address if the client socket gives link local ipv6 address.
Thanks for looking.
You will get the address used by the client that created the connection.
In this case, the client was using a temporary IPv6 address.
You can get a link local address if that was used by the client doing the connection, but a link local address cannot be used by connections from the wider internet, you would only get a link-local address when connections come in from the local network and those connections use the link-local address.