我正在为当地博物馆的无状态网络启动环境中使用Raspberry Pi
开展一个项目。我希望Raspberry Pi
从MAC地址的最后4位数生成易于记忆的3个字符代码。此代码将由一个人读取并输入到描述机器将执行操作的数据库中,并且在将来重新启动时,Raspberry Pi
将查找其自己的代码以识别其任务。
可以单独使用部分MAC地址完成,但我希望生成更人性化的代码以减少错误。转换只需要在一个方向上工作。
我认为我已将其分解为逻辑步骤,但我不确定如何以有效的方式实现它们。
答案 0 :(得分:1)
您可以将最后13位分成5,3,5位组。使用第一个和最后一个选择一个辅音字母(有21个,需要5个位,你可以从22重复),并为中间3选择一个元音字母(有5个,选择相同的方式)。这将给出大部分可发音的名字",其中一些也可能很有趣。
答案 1 :(得分:0)
我完成了上面的回复并提出了一个解决方案。它并不完美,但它有效......
if [ ! -f /home/pi/MAC_ADDRESS ]; then
BASE28="ABC3DEFG4HJK6LMN7PQRT8UVW9XY";
arg1=$(ifconfig | grep eth0 | awk '{if ($4 == "HWaddr") print $5 }');
echo $arg1 > /home/pi/MAC_ADDRESS;
arg1="${arg1//:}";
arg1=${arg1:8:4};
arg1=$(echo $arg1 | tr '[:lower:]' '[:upper:]');
arg1=$(bc <<< "obase=28; ibase=16; $arg1");
c="";
for i in $arg1; do
if [ $i -eq 08 ]; then
i=8;
fi
if [ $i -eq 09 ]; then
i=9;
fi
b=${BASE28:$i:1};
c=$c$b;
done
c=${c:(-3)};
echo $c > /home/pi/CLIENT_ID;
fi
在for循环中,由于某种原因,我需要修复08和09 ......