我正在开发一个软件,我需要通过 java 代码列出计算机的 IP 地址和 MAC 地址。有没有办法获取ip地址和mac地址的列表?
谢谢
从 JDK 1.6 开始,Java 开发人员可以通过 NetworkInterface 类访问网卡详细信息。
InetAddress ip;
ip = InetAddress.getLocalHost();
System.out.println("Current IP address : " + ip.getHostAddress());
NetworkInterface network = NetworkInterface.getByInetAddress(ip);
byte[] mac = network.getHardwareAddress();
System.out.print("Current MAC address : ");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < mac.length; i++) {
sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
}
System.out.println(sb.toString());
对于多个 IP 地址:
java.util.Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces();
en.hasMoreElements(); ) {
NetworkInterface iface = en.nextElement();
List<InterfaceAddress> addrs = iface.getInterfaceAddresses();
//For each network interfaces iterate through each ip address
for(InterfaceAddress addr : addrs) {
ip = addr.getAddress();
//Process the IP ...
从 java 程序运行命令的示例代码,
Process p;
String cmd="ifconfig-a";
p = Runtime.getRuntime().exec(cmd);
BufferedReader br = new BufferedReader(
new InputStreamReader(p.getInputStream()));
while ((s = br.readLine()) != null)
System.out.println("line: " + s);
p.waitFor();
System.out.println ("exit: " + p.exitValue());
p.destroy();
输出:
line: eth0 Link encap:Ethernet HWaddr 00:13:D3:DE:5A:A4 --->MAC address in linux