Существует вероятность того, что на компьютере не будет сетевой карты или их будет много, поэтому возможна ошибка распознавания на основе MAC-адреса.
Получение MAC-адресов сетевых интерфейсов на компьютере
Enumeration<NetworkInterface> networkInterfaces = NetworkInterface.getNetworkInterfaces();
while (networkInterfaces.hasMoreElements()) {
NetworkInterface networkInterface = networkInterfaces.nextElement();
System.out.println(networkInterface.getName() + " " +
networkInterface.getDisplayName());
}
Проблема многих MAC-адресов может быть решена с помощью хэширования сцепленной строки MAC-адресов. Но все еще существует проблема отсутствия существующего случая MAC-адреса.
Другая возможность уникальной идентификации компьютера заключается в хешировании некоторых из его внутренних спецификаций, например, серийного номера процессора, идентификатора процессора, операционной системы и т. Д. Например, с использованием кроссплатформенной библиотеки OSHI . Это решение не зависит от существующих сетевых адаптеров на компьютере.