Javascript уникальный id компьютера

Как я могу получить уникальный идентификатор устройства в javascript?

Я работаю над своим бакалаврским проектом в университете, и я делаю приложение, в котором мне нужен уникальный идентификатор устройства. Я работаю с javascript, и приложение (которое доступно при загрузке приложения или при входе на веб-страницу) будет работать на следующих платформах выполнения:

  • мобильные устройства и планшеты: Android, iOS, Windows Phone, Firefox OS, Tizen
  • Smart TV: Android, Tizen OS, веб-ОС
  • браузеры: Windows, Mac, Linux

Мой вопрос: можно ли получить идентификатор физического устройства, такой как MAC-адрес, но он никогда не меняется (поскольку MAC может быть изменен пользователем в любое время) для всех или, по крайней мере, для некоторых из упомянутые выше исполнительные платформы?

MAC-адрес, боже нет, чисто из соображений безопасности, мой первый вопрос . У вас есть доступ к форме любой серверной части?

Если вы используете React Native, вы можете получить серийный номер устройства из нативного кода.

Вы можете изменить любой MAC-адрес на своем компьютере, и он не уникален.

Как насчет того, чтобы просто сохранить файл cookie с уникальным идентификатором на устройстве? Затем вы также можете перечислить все уникальные подключенные устройства.

@ JO3-W3B-D3V Я использую NodeJS, и проект разделен на серверную, клиентскую и БД, так что да, у меня есть доступ к серверной части. Идея состоит в том, что как только пользователь входит в приложение, я могу получить уникальный идентификатор устройства, который навсегда останется неизменным для этого пользователя.

Читайте также:  Class access level in java

Одна из рекомендаций, которую я могу вам дать, — это использовать JS для поиска устройства пользователя, ОС, браузера и т. д. Затем, возможно, использовать серверную часть, чтобы получить его IP-адрес, сделать некоторую магию в задней части, а затем сгенерировать уникальный идентификатор. это основано на этой комбинации + учетные записи пользователей (если это будет включено). Вы мог даже включаете физическое местоположение пользователя?

В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в.

Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир.

Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -.

Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний.

Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не.

Ответы 3

Если установить приложение на мобильное устройство или смарт-телевизор, у вас, вероятно, будет достаточно доступа, чтобы получить что-то уникальное. Я не обязательно буду использовать Mac-адрес, но разные устройства будут иметь разные уникальные идентификаторы, которые вы можете получить (даже просто номер телефона был бы неплохим вариантом для мобильного телефона).

Другое дело — браузеры, которые представляют собой наиболее ограниченную среду, которую вы перечислили.

Более длинный ответ, нет, но вроде как.

Невозможно получить от клиента какой-либо действительно уникальный и неизменяемый идентификатор. Это означает отсутствие MAC-адреса, серийного номера, IMSI или чего-либо еще.

Вам придется обратиться к подходу, который рекламодатели часто используют, чтобы отслеживать вас в Интернете.

По сути, вы собираете всю информацию о пользователе, к которой можете получить доступ. Эти вещи могут включать строку пользовательского агента, IP-адрес, ОС и т.п. В основном это вещи, которые отправляются в HTTP-запросе и / или через клиентскую часть JavaScript. Объединив эти значения вместе, вы можете создать что-то, что будет достаточно уникальным отпечатком пальца, хотя это не гарантируется и будет сильно различаться в зависимости от физической среды, через которую пользователи получают к нему доступ.

Например, если я использую свой компьютер дома, и я совсем один, и у меня есть фиксированный IP-адрес, то получение одного только моего IP-адреса, вероятно, будет указывать только на меня. Если я нахожусь в библиотеке колледжа или в офисе, и почти все остальные компьютеры используют один и тот же внешний IP-адрес (довольно часто встречается), и все они примерно одинаковое количество обновленных , то многие люди будут отображаться как один и тот же пользователь, даже если вы смешаете несколько разных точек данных вместе.

В зависимости от вашего варианта использования он может быть «достаточно хорошим» (обычно это то, что используют рекламодатели), но если вы используете его для любого вида автоматического доступа к безопасности, не делай этого. Это никогда не будет достаточно безопасным для этого. Если вы хотите сделать что-то подобное, по крайней мере смешайте это со значениями cookie и / или сессиями, чтобы снизить риски.

Очень хорошо сказал старина. У меня было такое же представление об информации пользовательского агента, плюс IP-адрес и т. д. Это на самом деле довольно неудобно разрабатывать, честно говоря, я имею в виду, что даже крупные компании не освоили это, то есть Facebook, Google и т. д. обнаружил, что когда я вхожу в систему с того же устройства, с той же учетной записи, иногда я получаю предупреждения о том, что какое-то внешнее устройство вошло в мою учетную запись, когда на самом деле это просто из-за динамического IP-адреса и, возможно, другой браузер.

Действительно. Это очень далеко от пуленепробиваемости, и все крупные игроки постоянно настраивают свои алгоритмы, чтобы попытаться улучшить их. Некоторые даже добавляют такие вещи, как машинное обучение, чтобы попытаться лучше им соответствовать. Вот почему на него следует полагаться только при решении довольно тривиальных задач.

Согласен, к сожалению, нет надежного способа сделать это с помощью только javascript, я имею в виду, что вы, вероятно, могли бы сделать это намного более сложным и более надежным, если бы вы использовали что-то немного более мощное. Я имею в виду javascript в браузере, с которым вам трудно делать такие вещи, как ввод-вывод файлов.

Значит, я не могу получить идентификатор устройства через javascript? Нет решения?

Нет решения для JavaScript через браузер. Существуют решения, если оно установлено как собственное приложение (например, с PhoneGap), но речь идет не об этом. Это вопрос безопасности.

Технически невозможно получить уникальный идентификатор устройства из браузера.

Однако есть способ обойти это. Вы можете использовать JavaScript для генерации длинного идентификатора, который статистически гарантированно уникален, например GUID (128-битное целое число). Затем это значение можно сохранить в localStorage браузеров (или в файле cookie), снова используя JavaScript.

В следующий раз, когда пользователи откроют эту страницу, вы можете проверить, найден ли уникальный идентификатор в браузере localStorage. Если обнаружено, вы знаете, что это за устройство.

Вы также можете использовать другую информацию для идентификации устройства, такую ​​как IP-адрес, размер экрана устройства и другие параметры, которые можно прочитать с помощью JavaScript.

Ни одно из этих решений не будет работать гарантированно. Например, если браузер находится в частном режиме, данные в localStorage не сохранятся.

Можете проверить bitsgap.com? Как-то очень точно делают идентификацию устройства

Источник

Create a unique ID in JavaScript

In JavaScript or Node, it is often necessary to create a unique ID to identify a user or a session.

A sufficiently unique ID for any purpose can be created by combining two bits of information.

Creating a unique ID

Part 1: Timestamp

The first is the output of Date.now(). This returns the number of milliseconds that have passed since midnight on January 1, 1970 (UTC):

The advantage of using this metric as part of the ID is that the ID will contain a precise timestamp of its creation.

Of course, a timestamp is not enough to guarantee that an ID is unique: What if two IDs are generated at exactly the same time, to the millisecond? Even though it is unlikely, it is best not to take chances!

Part 2: Random number

To ensure that two or more IDs generated at the same time are unique, we can use the in-built Math.random() function to generate a second part of the ID. A random number between 0 and 1,000,000,000 (one billion) should do it:

const randomNumber = Math.floor(Math.random() * 1000000001);

Creating a unique ID function

Defining the function

Now all we have to do is join these two values to create a unique ID.

And, because we likely want to call it multiple times, we should place this code inside a function to make it reusable:

Usage example

Now, you can call the function whenever and as many times as you need to within your project to generate a unique ID:

generateID(); // 1648376206198_612111379 generateID(); // 1648376206198_267310705 generateID(); // 1648376206198_324813030

Notice that in the above code, each ID is generated at exactly the same. But the random number appended to the timestamp ensures that the ID is still unique.

Источник

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How can I get the computer’s unique id based on hardware info? #608

How can I get the computer’s unique id based on hardware info? #608

Comments

How can I get the computer’s unique id based on hardware info?

like CPU serial or Hard Disk?

The text was updated successfully, but these errors were encountered:

But ‘process’ variable has some platform and runtime info, but no computer hardware id info.

Sure, I use command line to get Mac address in java too. But It’s hard to get CPU or Hard Disk serial in this way.

Okay, well you said you wanted a Unique ID — Mac Address should suffice for this purpose, if you actually just want to get the Hard Disk serial then that’s probably a different question. You’ll likely have to use exec to access it from the terminal but then your app won’t be platform agnostic, there is no API exposed for this in the project.

What if the mac is not available or you can not rely on it because you’re working on an app that runs in computers that don’t have a network card?
I have the same issue of @linb and I need the ID of the HDD or CPU or something that you know it’s there and won’t be easily changed.

@bruno-preti if you are using windows operating system, following code may help you to get HDD and CPU serial number

var sys = require('util') var exec = require('child_process').exec; function puts(error, stdout, stderr) < console.log(stdout) >exec("wmic CPU get ProcessorId", puts); exec("wmic DISKDRIVE get SerialNumber", puts); 

Thank you very much @srehanuddin ! I’ll try with this if I’m required to do this again.
Have a nice day!

@srehanuddin your answer is very much helpful to get hdd serial number. But I want to save this serial number to a variable. So, I want its value. If I try to console.log(stdout.SerialNumber) then it gives me undefined

Perhaps the fingerprintjs2 is one of the solutions for this issue:

Browser allows very limited access to hardware. If you want to uniquely identify your clients, you can use the below chrome extension.

hi everyone. everyone for me asks about getting the device id of a computer from browser to send the access token between domain another, single sign-on. thank so much

Not unique on every browser.

As mentioned above, on Windows you can use wmic to check the hard drive serial number, but you can also check the motherboard serial number which is less likely to change. wmic bios get serialnumber

try  const execSync = require('child_process').execSync; const response = execSync('wmic bios get serialnumber'); const serial = String(response).split('\n')[1]; console.log(serial); > catch (err)  console.log('Error getting serial number', err); >

Источник

Оцените статью