📅  最后修改于: 2023-12-03 15:01:32.183000             🧑  作者: Mango
在Java中,可以使用Socket来建立网络连接并实现客户端和服务器之间的通信。有时候我们需要获取客户端的IP地址,信息如何获取呢?
// 建立服务器端
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("等待客户端连接...");
// 等待客户端连接
Socket socket = serverSocket.accept();
// 获取客户端地址信息
InetAddress inetAddress = socket.getInetAddress();
// 获取IPv4地址
String clientIp = inetAddress.getHostAddress();
// 输出客户端IPv4地址
System.out.println("客户端IPv4地址:" + clientIp);
以上代码中,首先创建ServerSocket并监听端口号8888,等待客户端连接。当客户端连接成功后,通过Socket的getInetAddress()方法获取客户端的地址信息,再通过getHostAddress()方法获取IPv4地址。
如果客户端使用的是IPv6地址,可以通过getHostAddress()方法获取IPv6地址。
// 建立服务器端
ServerSocket serverSocket = new ServerSocket(8888);
System.out.println("等待客户端连接...");
// 等待客户端连接
Socket socket = serverSocket.accept();
// 获取客户端地址信息
InetAddress inetAddress = socket.getInetAddress();
// 获取IPv6地址
String clientIp = inetAddress.getHostAddress();
// 输出客户端IPv6地址
System.out.println("客户端IPv6地址:" + clientIp);
通过Socket获取客户端地址信息,再通过getHostAddress()方法获取客户端IPv4或IPv6地址,以实现客户端地址信息的获取。