您的位置:首页 > 其它

获取网卡IP与MAC地址

2012-07-12 11:54 295 查看
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InterfaceAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;

public class GetSystemInfoUtil {
// 获取ip地址
public static List<String> GetNetworkCardIPAddress() throws SocketException {
List<String> allNetworkCardIPAddresses = new ArrayList<String>();
Enumeration<NetworkInterface> allNetworkInterfaces = NetworkInterface
.getNetworkInterfaces();
while (allNetworkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = allNetworkInterfaces
.nextElement();
List<InterfaceAddress> interfaceAddresses = networkInterface
.getInterfaceAddresses();
for (InterfaceAddress address : interfaceAddresses) {
InetAddress addressTemp = address.getAddress();
if (addressTemp instanceof Inet4Address
&& !addressTemp.getHostAddress().equals("127.0.0.1")) {
allNetworkCardIPAddresses.add(addressTemp.getHostAddress());
}
}
}
return allNetworkCardIPAddresses;
}

// 获取mac地址
public static List<String> GetNetWorkCardMacAddress()
throws SocketException {

List<String> allNetworkCardIPAddresses = new ArrayList<String>();
Enumeration<NetworkInterface> allNetworkInterfaces = NetworkInterface
.getNetworkInterfaces();
while (allNetworkInterfaces.hasMoreElements()) {
StringBuilder sb = new StringBuilder();
NetworkInterface networkInterface = allNetworkInterfaces
.nextElement();
if (networkInterface.isPointToPoint())
continue;
if (networkInterface.isLoopback())
continue;
byte[] hardwareAddress = networkInterface.getHardwareAddress();
if (hardwareAddress == null)
continue;
for (byte b : hardwareAddress) {
String temp = Integer.toHexString(b);
int length = temp.length();
if (length < 2) {
sb.append("0" + temp + "-");
continue;
}
sb.append(temp.substring(length - 2));
sb.append("-");
}
sb.deleteCharAt(sb.length() - 1);
allNetworkCardIPAddresses.add(sb.toString());

}
return allNetworkCardIPAddresses;
}

public static void main(String[] args) throws Exception {
List<String> getNetworkCardIPAddress = GetNetworkCardIPAddress();
for (String str : getNetworkCardIPAddress) {
System.err.println(str);
}
List<String> getNetWorkCardMacAddress = GetNetWorkCardMacAddress();
for (String str : getNetWorkCardMacAddress) {
System.err.println(str);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: