Próbuję znaleźć coś, co mogę użyć jako unikalny ciąg/numer dla mojego skryptu, który jest naprawiony w maszynie i łatwo dostępny (na różnych platformach). Zakładam, że komputer miałby kartę sieciową. Nie potrzebuję tego, by był naprawdę wyjątkowy, ale konieczne jest, aby został on ustalony na dłuższą metę i tak rzadki, jak to tylko możliwe.Naprawiono identyfikator komputera (uuid.getnode)
Wiem, że MAC może zostać zmieniony i prawdopodobnie będę ostrzegał o tym w moim skrypcie, jednak nie oczekuję, że ktokolwiek zmieni MAC każdego ranka.
Co wymyśliłem jest uuid.getnode()
, ale w docs znajduje się:
Jeśli wszystkie próby uzyskania adresu sprzętowego nie, wybieramy losowo 48-bitowy numer
Does oznacza to, że dla każdego wywołania funkcji otrzymuję inną liczbę losową, dlatego nie można jej użyć, jeśli MAC jest nieosiągalny?
... na komputerze z wieloma interfejsami sieciowymi może zostać zwrócony adres MAC dowolnego z nich.
Czy to zdanie oznacza, że getnode()
otrzymuje losowy (lub pierwszy) adres MAC ze wszystkich dostępnych? Co by było, gdyby MAC A w pierwszym przebiegu i MAC B następnym razem? Nie byłoby problemu, gdybym dostał stałą listę (sort, concatenate, tadaaa!)
Pytam, ponieważ nie mam sposobu, aby przetestować to sam.
jestem w stanie uzyskać android UUID z tym kodem. Używam Androida marshmallow i zainstalowanego na nim emulatora terminala Widzę pełną listę 'getprop', ale' ril.serialnumber' nie istnieje. czy potrzebuje uprawnień roota? – Gahan
@Gahan zobacz [ten komentarz] (https://stackoverflow.com/questions/27368423/how-can-i-get-a-ril-serial-number-for-motorola-moto-x#comment43189061_27368423), dlaczego jest to się dzieje. Jest to raczej niefortunne, ale dla wszystkich metod uzyskania unikalnego identyfikatora urządzenia powinieneś mieć również "plan tworzenia kopii zapasowych", tzn. Może wrzucić plik/łańcuch znaków do funkcji mieszania lub coś podobnego. Jeśli korzystasz z [Kivy] (http://kivy.org/), możesz uzyskać dostęp do API Androida bezpośrednio z [pyjnius] (https://github.com/kivy/pyjnius/) (wymaga to JNI). – KeyWeeUsr
Nie używam kivy.jednak mam Pythona do pracy z domyślnym modułem, który jest dostarczany z uuid, os, sys, podprocesu itp. jakikolwiek inny moduł nie jest dostępny dla istniejącej kompilacji crossowej, której używam. – Gahan