private final static String ETH0 = "eth0";

private static String getLocalIp()
{
Map<String, String> map = new HashMap<String, String>();
try {
Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
while (en.hasMoreElements())
{
NetworkInterface intf = en.nextElement();
String name = intf.getName();
Enumeration<InetAddress> ipAddr = intf.getInetAddresses();
while ( ipAddr.hasMoreElements())
{
InetAddress inetAddress = ipAddr.nextElement();
String hostAddress = inetAddress.getHostAddress();
if (TextUtils.isEmpty(hostAddress)
|| inetAddress.isLoopbackAddress()
|| inetAddress.isLinkLocalAddress()
|| (inetAddress instanceof Inet6Address))
{
continue;
}
map.put(name, hostAddress);
}
}

//如果有以太网ip,去以太网ip,如果没有,取第一个ip
if(map.containsKey(ETH0))
{
return map.get(ETH0);
}
return (String) map.values().toArray()[0];
} catch (Exception e) {
}
return null;
}
这里的HashMap在盒子上,也许更通用一些?