GNU/Linux >> Znalost Linux >  >> Linux

jak vygenerovat náhodnou MAC adresu z příkazového řádku Linuxu

Řešení 1:

Používám

macaddr=$(echo $FQDN|md5sum|sed 's/^\(..\)\(..\)\(..\)\(..\)\(..\).*$/02:\1:\2:\3:\4:\5/')

Výhodou této metody oproti zcela náhodnému číslu je, že je možné spolehlivě reprodukovat MAC adresu na základě FQDN stroje, což někdy považuji za užitečné. 02 pro první oktet pouze nastaví "lokálně přiřazený" bit, což objasňuje, že se nejedná o MAC adresu poskytnutou dodavatelem, a zaručuje, že nenarazíte na skutečnou MAC adresu NIC.

Pokud potřebujete vygenerovat více MAC adres na hostitele, použil jsem zřetězení FQDN s názvem mostu, ke kterému se má rozhraní připojit; to odvedlo dobrou práci při šíření věcí pro různé síťové karty.

Řešení 2:

Odeslané skripty jsou dobré, ale chci přidat varování:Mind the Birthday (paradoxon)!

Vychází ze skutečnosti, že i když máte pouhých 23 lidí, je již 50% šance, že 2 z nich mají narozeniny ve stejný den.

Záleží na vašem scénáři, jak jej používáte, ale pokud generujete MACS náhodně, při přibližně 1 milionu je vaše šance na střet mac čísel 40 % při 2 milionech je již 87 %!

Pokud potřebujete jen pár, je to v pořádku, ale když udržujete serverovou farmu se stovkami serverů, z nichž každý hostuje desítky virtuálních strojů, nebo pokud používáte mac jako index v nějaké db pro vedení účetnictví a potřebujete unikáty, buďte opatrní !

Řešení 3:

Tyto varianty fungují také.

déle:

openssl rand -hex 6 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/'

nebo kratší:

openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/:$//'

Spotřeba zátěže obou variant je podle rychlého měření s časem velmi podobná.

Řešení 4:

myserver% perl -e 'for ($i=0;$i<6;$i++){@m[$i]=int(rand(256));} printf "%X:%X:%X:%X:%X:%X\n",@m;'
55:C2:A5:FA:17:74

Ach, ta stará švýcarská motorová pila zase jezdí. A prostřednictvím verze 0.2 bezostyšně kradem vynikající poznámku womble o prvním oktetu 02:

myserver% perl -e 'for ($i=0;$i<5;$i++){@m[$i]=int(rand(256));} printf "02:%X:%X:%X:%X:%X\n",@m;'
02:8E:94:A3:47:26

Řešení 5:

Vím, že tento příspěvek je starý, ale pro budoucí návštěvníky, pokud chcete kryptograficky zabezpečenou pseudonáhodnou MAC adresu, aniž byste byli omezeni na 0x02 jako OUI, zde je rychlý, většinou platformově agnostický generátor:

$ printf '%02x' $((0x$(od /dev/urandom -N1 -t x1 -An | cut -c 2-) & 0xFE | 0x02)); od /dev/urandom -N5 -t x1 -An | sed 's/ /:/g'

Linux
  1. Generujte hesla na příkazovém řádku Linuxu

  2. Nakonfigurujte pracovní prostor Linuxu vzdáleně z příkazového řádku

  3. Linux – Jak spustit oddíl Windows z příkazového řádku Grub?

  1. Jak generovat obrázky Cmyk pomocí příkazového řádku v systému Linux?

  2. Jak vyvolat makro Openoffice z příkazového řádku Linuxu?

  3. Jak otevřít správce AVD na Ubuntu Linux z příkazového řádku?

  1. Jak mohu odeslat zprávu na můj socket.io websocket z příkazového řádku v linuxu?

  2. Jak mohu zkopírovat složku z příkazového řádku systému Linux?

  3. Jak spustit TeX z rozhraní příkazového řádku v Linuxu