package com.hdl.sdk.link.common.utils;
|
|
import android.content.Context;
|
import android.net.wifi.WifiInfo;
|
import android.net.wifi.WifiManager;
|
|
import java.net.InetAddress;
|
import java.net.InterfaceAddress;
|
import java.net.NetworkInterface;
|
import java.net.SocketException;
|
import java.util.Enumeration;
|
|
/**
|
* Created by Tong on 2021/9/27.
|
*/
|
public class IpUtils {
|
|
/**
|
* @return 广播地址
|
*/
|
public static String getBroadcastAddress() {
|
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().toString().substring(1);
|
}
|
}
|
}
|
}
|
} catch (SocketException e) {
|
e.printStackTrace();
|
}
|
return "255.255.255.255";
|
}
|
|
public static boolean isLocalIpAddress(String ipAddress) {
|
try {
|
for (Enumeration<NetworkInterface> niEnum = NetworkInterface.getNetworkInterfaces();
|
niEnum.hasMoreElements(); ) {
|
NetworkInterface ni = niEnum.nextElement();
|
for (InterfaceAddress interfaceAddress : ni.getInterfaceAddresses()) {
|
if (ipAddress.equals(interfaceAddress.getAddress().getHostAddress())) {
|
return true;
|
}
|
}
|
}
|
} catch (SocketException e) {
|
e.printStackTrace();
|
}
|
return false;
|
}
|
|
public static String getIP(Context application) {
|
WifiManager wifiManager = (WifiManager) application.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
|
if (!wifiManager.isWifiEnabled()) {
|
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();
|
}
|
}
|
}
|
} catch (SocketException e) {
|
e.printStackTrace();
|
}
|
} else {
|
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
|
int ipAddress = wifiInfo.getIpAddress();
|
return intToIp(ipAddress);
|
}
|
return null;
|
}
|
|
|
private static String intToIp(int i) {
|
|
return (i & 0xFF) + "." +
|
((i >> 8) & 0xFF) + "." +
|
((i >> 16) & 0xFF) + "." +
|
(i >> 24 & 0xFF);
|
}
|
}
|