在Android中以xxx.xxx.xxx.xxx格式获取IP地址
嗨,伙计们,为了得到我的安卓手机IP地址,我在网上做了很多编码 他们中的大多数人都以失败告终在Android中以xxx.xxx.xxx.xxx格式获取IP地址,android,Android,嗨,伙计们,为了得到我的安卓手机IP地址,我在网上做了很多编码 他们中的大多数人都以失败告终 if (!inetAddress.isLoopbackAddress()) { return inetAddress.getHostAddress().toString(); } 我怎么会得到这样的东西:-“fe80::a00:27ff:fe37:28b5%eth1” 奇怪,因为我期待着像xxx.xxx.xxx.xxx这样的东西 有人能帮我理解这是什么吗?这是
if (!inetAddress.isLoopbackAddress())
{ return inetAddress.getHostAddress().toString(); }
我怎么会得到这样的东西:-“fe80::a00:27ff:fe37:28b5%eth1”
奇怪,因为我期待着像xxx.xxx.xxx.xxx这样的东西
有人能帮我理解这是什么吗?这是一个IPv6地址。此外,由于它以fe80开头::您知道它也是一个,因此不能用于本地网络以外的通信。(在本例中,
eth1
,因为这是在%
后面的末尾指定的范围-但请注意,使用%
标识范围在使用IPv6地址时并不总是有效。)这是IPv6地址。此外,由于它以fe80开头::您知道它也是一个,因此不能用于本地网络以外的通信。(在本例中,eth1
,因为这是在%
后面的末尾指定的范围-但请注意,使用%
标识范围在使用IPv6地址时并不总是有效。)尝试java.net.Inet4Address
。尝试java.net.Inet4Address
。其返回的IPV6地址
在返回结果之前检查其IPV4地址是否正确
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress().toString();
}
希望这有帮助。它返回的IPV6地址 在返回结果之前检查其IPV4地址是否正确
if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) {
return inetAddress.getHostAddress().toString();
}
希望这有帮助。请参见问题“是”。现在这是有道理的。最后一件事。见问题“是”。现在这是有道理的。最后一件事,太好了!现在我做的是——我得到了我手机(服务器)的这个Ipv6地址,并将它放在我的模拟器(客户端)中,但它无法连接。然后我用老的方式做了,xxx.xxx.xxx.xxx格式,它连接起来了!因此,我是否可以直接获得旧格式,因为这个Ipv6没有任何工作方式?@Wadia,有许多可能的方法可以过滤掉不需要的Ipv6地址(请参阅此问题的其他答案)。我看到的一种方法是检查地址中是否存在
:
。如果是这样,那就是IPv6地址。太好了!现在我做的是——我得到了我手机(服务器)的这个Ipv6地址,并将它放在我的模拟器(客户端)中,但它无法连接。然后我用老的方式做了,xxx.xxx.xxx.xxx格式,它连接起来了!因此,我是否可以直接获得旧格式,因为这个Ipv6没有任何工作方式?@Wadia,有许多可能的方法可以过滤掉不需要的Ipv6地址(请参阅此问题的其他答案)。我看到的一种方法是检查地址中是否存在:
。如果是的话,它是一个IPv6地址。