gpt4 book ai didi

java - 如何从 ServerSocket 获取 IPv4?

转载 作者:行者123 更新时间:2023-11-29 09:17:38 27 4
gpt4 key购买 nike

在我的应用程序中,我创建了一个 ServerSocket,并等待连接:

while(isRunning) {
try {
socket = serverSocket.accept();

然后我尝试获取结果套接字的远程 IP:

socket.getInetAddress().getHostAddress();

但是,这似乎只返回一个 IPv6 地址。

为了我的目的,我相信我需要一个 IPv4。有什么方法可以从套接字获取 IPv4 地址吗?

最佳答案

不知道是否为时已晚,但这段代码可以解决您的问题。我今天遇到了同样的问题,发现了这个:

private String getLocalIpAddress() {
try {
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
if (inetAddress instanceof Inet4Address) {
return ((Inet4Address)inetAddress).getHostAddress().toString();
}
}
}
}
} catch (SocketException ex) {
Log.e("ServerActivity", ex.toString());
}
return null;
}

重点是测试IP地址是否真的是IP V4地址。

玩得开心

关于java - 如何从 ServerSocket 获取 IPv4?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8468063/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com