通过InetAddress.getLocalHost()得到始终是“127.0.0.1”,要想得到真正的网络ip地址要通过下面的方法:
首先新建一个工程,修改AndroidManifest.xml文件增加用户权限,如下:
<uses-permission android:name="android.permission.INTERNET"/> <!--必写--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <!--必写—>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
主要函数代码如下:
// 得到本机ip地址 public String getLocalHostIp() { String ipaddress = ""; try { Enumeration<NetworkInterface> en = NetworkInterface .getNetworkInterfaces(); // 遍历所用的网络接口 while (en.hasMoreElements()) { NetworkInterface nif = en.nextElement();// 得到每一个网络接口绑定的所有ip Enumeration<InetAddress> inet = nif.getInetAddresses(); // 遍历每一个接口绑定的所有ip while (inet.hasMoreElements()) { InetAddress ip = inet.nextElement(); if (!ip.isLoopbackAddress() && InetAddressUtils.isIPv4Address(ip .getHostAddress())) { return ipaddress = "本机的ip是" + ":" + ip.getHostAddress(); } } } } catch (SocketException e) { Log.e("feige", "获取本地ip地址失败"); e.printStackTrace(); } return ipaddress; } // 得到本机Mac地址 public String getLocalMac() { String mac = ""; // 获取wifi管理器 WifiManager wifiMng = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo wifiInfor = wifiMng.getConnectionInfo(); mac = "本机的mac地址是:" + wifiInfor.getMacAddress(); return mac; }
我是天王盖地虎的分割线
源代码:http://pan.baidu.com/s/1dD1Qx01
获取MAC地址.zip
本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3759968.html,如需转载请自行联系原作者