在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;
}
参考链接: