1.普通的linux随机数可以用/bin/bash内置的环境变量解决,
例如: echo ${RAMDOM}
或者用时间戳和纳秒数解决:
例如echo `date +%s`
echo `date +%N`
2.openwrt中没有纳秒, 时间戳的话一秒钟才变化一次, 对于随机数来说变化太慢,
但是openwrt中有/dev/uramdom和/dev/ramdom这两个随机数发生器,
两者的原理是将系统的噪声作为变量(系统噪声和当时的电源噪声、进程、环境温度、电磁干扰有一定的关系)进行一定的运算得到,这是两个优秀的随机数发生器
两者的区别是: /dev/ramdom是阻塞型的, /dev/uramdom是非阻塞型
因此生成随机数的代码可以是这样
echo `head -n 128 /dev/urandom | tr -dc "0123456789" | head -c3`
3.用于IP地址的随机数可以这样得到:
echo `expr $(head -n 128 /dev/urandom | tr -dc "0123456789" | head -c4) % 255`