2012-01-25 5 views
0

Можно создать дубликат:
How to get a unique computer identifier in Java (like disk id or motherboard id)
Need to identify local machine somehow in javaJava - Как получить уникальный номер от компьютера

Я хочу, чтобы получить какой-то уникальный идентификатор для компьютера (т.е. IP-адрес).

Я попытался:

InetAddress inetAddress = null; 
try { 
    inetAddress = InetAddress.getLocalHost(); 
} catch (final UnknownHostException ex) {} 
return inetAddress.getHostAddress(); 

Это дает IP, но это, кажется, периодически меняется. Есть ли способ получить тот, который НЕ меняется?

Заранее благодарен!

Примечание:

Мне нужно, чтобы иметь возможность связать этот идентификатор с компьютером.

+1

Что делать, если пользователь покупает новый жесткий диск? – SLaks

+0

Обратите внимание, что локальные IP-адреса очень не уникальны. – SLaks

+0

Возможно, MAC-адрес? Хотя это тоже может измениться, если они заменили сетевой интерфейс. –

ответ

2

Если устройство находится на DHCP, IP-адрес будет меняться периодически. Вы можете использовать имя хоста, или можете использовать MAC-адрес, который вы можете получить с помощью java.net.NetworkInterface.getHardwareAddress()

+0

Не изменится ли этот адрес? – Confiqure

+1

Да, MAC-адрес, безусловно, лучший выбор здесь. Игнорируя некоторые редкие ситуации (скажем, виртуальные машины, кто-то меняет MAC-адрес), он гарантированно будет глобально уникальным - что еще вы можете пожелать. Хотя он все еще может измениться - мы можем поменять сетевую карту или установить вторую и т. Д. – Voo

+0

Могу ли я получить помощь с добавлением кода для этого? Кажется, я не понимаю. – Confiqure

0

Считаете ли вы использование UUID, который гарантированно будет уникальным?

import com.eaio.uuid.UUID; 

public class UUIDTest { 
public static void main(String[] args) { 
    UUID u = new UUID(); 
    System.out.println(u); 
} 
} 
+0

Как это относится к машине? –

+0

Мне нужно связать этот идентификатор с компьютером. Так нет. – Confiqure

+0

UUID должен быть назначен компьютеру, чтобы он мог быть проиндексирован. «Я хочу получить уникальный идентификатор для компьютера (т. Е. IP-адрес)». Вид неопределенного заявления, поэтому я интерпретировал его как требующий уникального идентификатора для назначения. Если вы хотите получить значение с самого устройства, то, по-видимому, Мартину предлагается использовать MAC-адрес. –

Смежные вопросы