Bạn có thể sử dụng java.net.NetworkInterface.getNetworkInterfaces để lấy các giao diện mạng và gọi getHardwareAddress() trên chúng để nhận địa chỉ MAC.
Bạn có thể lọc ra vòng lặp với if.isLoopBack() (trong đó "if" là đối tượng giao diện). Ngoài ra, lọc ra bất kỳ giao diện nào mà if.getHardwareAddress() trả về null. Sau đó chọn ra một. Bạn có thể sắp xếp chúng theo tên, if.getName() và lấy tên đầu tiên. Đối với mục đích của bạn, nó không thực sự quan trọng nếu nó là giao diện thực tế được sử dụng để tải xuống các tệp của bạn hay không, chỉ cần bạn có thể xác định máy tính bằng cách nào đó. Cuối cùng if.getHardwareAddress() cung cấp cho bạn một mảng các byte với địa chỉ MAC. Nếu bạn muốn có một String, hãy định dạng từng byte bằng "% 02x" .format (byte) và nối chúng với dấu ":" làm dấu tách.
Như được đề xuất trong một câu trả lời khác, tốt hơn nên sử dụng PersistenceService.
Sử dụng địa chỉ MAC có thể hữu ích nếu bạn muốn lưu dữ liệu khác nhau cho cùng một người dùng trên các máy tính khác nhau trong trường hợp người dùng có cùng tệp/homedir trên mỗi máy tính. Bạn có thể sử dụng địa chỉ MAC như một phần của URL mà bạn chuyển tới PersistenceService # create() và get(). Hữu ích nếu bạn muốn dữ liệu trên mỗi máy tính thay vì dữ liệu cho mỗi người dùng.
dụ ngắn Scala-code:
Nguồn
2012-01-12 11:37:24
gì xảy ra khi người dùng thay đổi địa chỉ MAC của họ thường xuyên để phá vỡ hạn chế này? –