我是新來的android開發,我正在做一個應用程序,通過短信將android設備的IP地址發送到另一個。我需要得到十進制的IP,就像這個192.168.0.4不是我從下面的代碼中得到的十六進制。任何想法如何做到這一點,並感謝您的幫助。以可讀形式獲取IP地址android代碼
public 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()) {
return inetAddress.getHostAddress().toString();
}
}
}
} catch (SocketException ex) {
Log.e(TAG, ex.toString());
}
return null;
}
我收到IP怪異形式十六進制或東西,我需要像這樣192.168.0.0或類似的東西。請幫忙。 –
我不知道該怎麼做,但是如果你按照我分享的鏈接,這個鏈接看起來相當簡短,它解釋瞭如何以正確的方式獲取設備的IP,以便在表單中獲得IP你在問。 –
我知道,答覆有點遲,但這可能對其他人有幫助。您可以使用以下條件:if(!inetAddress.isLoopbackAddress()&& inetAddress instanceof Inet4Address)過濾掉您的結果。這應該只給你很好格式化的IPv4地址。 –