Omega2, будучи IoT-компьютером, является устройством подключения. Здесь будут обсуждены MAC-адреса Omega2: как они распределены, как их читать и как программно сгенерировать уникальный идентификатор на их основе.
MAC-адрес (Media Access Control) - это уникальный 6-байтовый идентификатор, назначаемый контроллерам сетевого интерфейса. Устройства с несколькими сетевыми интерфейсами должны иметь уникальный MAC-адрес для каждого интерфейса.
Каждому устройству Omega2 в процессе производства выделяется три последовательных MAC-адреса, по одному для каждого из доступных сетевых интерфейсов:
MAC-адрес ra0 совпадает с MAC-адресом, который напечатан на наклейке. Два других MAC-адреса являются последовательными:
Команда iwpriv может использоваться для доступа к параметрам беспроводного драйвера, среди которых есть MAC-адреса.
Подключитесь к командной строке Omega и выполните следующую команду:
iwpriv ra0 e2p
Он выведет следующие данные:
Мы заинтересованы в:
Посмотрите, как эти адреса сопоставляются с сетевыми интерфейсами, выполнив команду ifconfig:
При работе с IoT-устройствами всегда полезно иметь идентификаторы, уникальные для каждого устройства. Они могут быть созданы с использованием одного и того же кода. Что может быть лучше для этого, чем собственный MAC-адрес устройства.
Чтобы проиллюстрировать этот процесс, рассмотрим shell-скрипт с именем macId.sh, который создает и выводит уникальный идентификатор на основе MAC-адреса ra0:
#!/bin/sh
## Generate UID based on device‘s MAC addr for ra0 intf
generateMacUid () {
# grab line 2 of iwpriv output
line1=$(iwpriv ra0 e2p | sed -n ‘2p‘)
# isolate bytes at addresses 0x0004 and 0x0006, and perform byte swap
bytes5432=$(echo $line1 | awk ‘{print $3":"$4}‘ |
awk -F ":"
‘{print substr($2,3) substr($2,1,2) substr($4,3) substr($4,1,2)}‘)
# grab line 3 of iwpriv output
line2=$(iwpriv ra0 e2p | sed -n ‘3p‘)
# isolate bytes at address 0x0008 and perform byte swap
bytes10=$(echo $line2 | awk ‘{print $1}‘ |
awk -F ":" ‘{print substr($2,3) substr($2,1,2)}‘)
macId=$(echo ${bytes5432}${bytes10})
echo $macId
}
uid=$(generateMacUid)
echo "Unique ID based on MACD for this device is: $uid"
При запуске на устройстве:
root@Omega-2013:~# sh macId.sh
Unique ID for this device is: 40A36BC32013
Не стесняйтесь переводить этот код на другие языки и использовать его в своих приложениях.
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru