在AndroidManifest文件中配置权限:
<!-- internet --> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
NetUtil文件:
/** * 获取本地IP地址 */ public static String getLocalIP() { try { // 获取本地设备的所有网络接口 Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces(); while (niEnum.hasMoreElements()) { // 获取网络接口的所有IP地址 Enumeration<InetAddress> addressEnum = niEnum.nextElement().getInetAddresses(); while (addressEnum.hasMoreElements()) { // 返回枚举集合中的下一个IP地址信息 InetAddress inetAddress = addressEnum.nextElement(); // 不是回环地址,并且是IPv4地址 if (!inetAddress.isLoopbackAddress() && inetAddress instanceof Inet4Address) { return inetAddress.getHostAddress(); } } } } catch (SocketException e) { e.printStackTrace(); } return null; }
/** * 获取广播地址 */ public static String getBroadcastIP() { try { for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces(); niEnum.hasMoreElements(); ) { NetworkInterface ni = niEnum.nextElement(); if (!ni.isLoopback()) { for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) { if (interfaceAddress.getBroadcast() != null) { return interfaceAddress.getBroadcast().getHostAddress(); } } } } } catch (SocketException e) { e.printStackTrace(); } return null; }
参考链接: