转自CSDN的Android_Tutor的博文,因为感觉很有用。
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(LOG_TAG, ex.toString());
}
return null;
}
在Android_Tutor代码中,LOG_TAG需要加上双引号,另外我一直认为拿来主义很正确嘛,就比如这个方法,里面有些名称或类都不认识,没关系,知道能返回String类型的IP就行了,当然如果时间充裕的话,稍微理解下也好,细嚼慢咽当然好,囫囵吞枣不也为是一种方法。这个方法就是获取用户当前IP,无论是wifi还是3g上网,当设置为飞行模式的时候,获取的就是null了,
每一个程序猿都是文艺青年!!!
浙公网安备 33010602011771号