以下是一个简单的示例代码,演示了如何在鸿蒙OS中使用 NetworkInterface:
import ohos.global.net.NetworkInterface;
import ohos.global.net.InterfaceAddress;
import ohos.global.net.Inet4Address;
import ohos.global.net.InetAddress;
import ohos.global.net.SocketException;
import java.util.Enumeration;
public class NetworkInterfaceExample {
public static void main(String[] args) {
try {
// 获取所有网络接口
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
// 遍历所有网络接口
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
// 输出网络接口的名称
System.out.println("Interface Name: " + networkInterface.getName());
// 输出网络接口的硬件地址(MAC地址)
byte[] hardwareAddress = networkInterface.getHardwareAddress();
if (hardwareAddress != null) {
System.out.println("Hardware Address (MAC): " + formatByteArray(hardwareAddress));
}
// 遍历网络接口的所有 InterfaceAddress 对象(IP地址信息)
for (InterfaceAddress interfaceAddress : networkInterface.getInterfaceAddresses()) {
InetAddress inetAddress = interfaceAddress.getAddress();
if (inetAddress instanceof Inet4Address) {
System.out.println("IPv4 Address: " + inetAddress.getHostAddress());
}
}
System.out.println("----------------------");
}
} catch (SocketException e) {
e.printStackTrace();
}
}
// 辅助方法:将字节数组格式化为点分十进制字符串
private static String formatByteArray(byte[] byteArray) {
StringBuilder result = new StringBuilder();
for (int i = 0; i < byteArray.length; i++) {
result.append(String.format("%02X", byteArray[i]));
if (i < byteArray.length - 1) {
result.append(":");
}
}
return result.toString();
}
}
在这个例子中,通过调用 NetworkInterface.getNetworkInterfaces 方法获取所有的网络接口,然后遍历每个网络接口。通过调用 getName 方法获取接口的名称,通过调用 getHardwareAddress 方法获取硬件地址(MAC地址),通过遍历 getInterfaceAddresses 方法获取网络接口的所有 InterfaceAddress 对象,从中提取IPv4地址等信息。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体的需求进行更复杂的处理。鸿蒙OS的相关文档和开发者手册也提供了更详细的信息和示例。
转载请注明出处:http://www.zyzy.cn/article/detail/2829/鸿蒙OS