1、MAC地址
import java.util.ArrayList;
import java.util.List;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class Mac {
// 获取所有网卡的MAC地址
public static List<String> getAllMac() {
List<String> list = new ArrayList<String>();
try {
Enumeration<NetworkInterface> e = NetworkInterface
.getNetworkInterfaces();// 返回所有网络接口的一个枚举实例
while (e.hasMoreElements()) {
NetworkInterface network = e.nextElement();// 获得当前网络接口
if (network != null) {
if (network.getHardwareAddress() != null) {
// 获得MAC地址
// 结果是一个byte数组,每项是一个byte,我们需要通过parseByte方法转换成常见的十六进制表示
byte[] addres = network.getHardwareAddress();
StringBuffer sb = new StringBuffer();
if (addres != null && addres.length > 1) {
sb.append(parseByte(addres[0])).append(":")
.append(parseByte(addres[1])).append(":")
.append(parseByte(addres[2])).append(":")
.append(parseByte(addres[3])).append(":")
.append(parseByte(addres[4])).append(":")
.append(parseByte(addres[5]));
list.add(sb.toString());
}
}
} else {
System.out.println("获取MAC地址发生异常");
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return list;
}
// 格式化二进制
private static String parseByte(byte b) {
String s = "00" + Integer.toHexString(b);
return s.substring(s.length() - 2);
}
// 然后,我们用如下测试代码,看一下测试结果
public static void main(String[] args) {
for (String mac : getAllMac()) {
System.out.println(mac);
}
}
}
2、IP地址
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.Enumeration;
public class Test {
public static void main(String[] args) {
StringBuilder IFCONFIG = new StringBuilder();
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()
&& !inetAddress.isLinkLocalAddress()
&& inetAddress.isSiteLocalAddress()) {
IFCONFIG.append(inetAddress.getHostAddress().toString()
+ "\n");
}
}
}
} catch (SocketException ex) {
}
System.out.println(IFCONFIG);
}
}