Gentoo Archives: gentoo-user-de

From: "D. Bolliger" <info@×××××××××.ch>
To: gentoo-user-de@l.g.o
Subject: Re: [gentoo-user-de] [OT] Bash-Frage: Inkrementieren von MAC-Adressen für XEN-Instanzen?
Date: Sun, 24 Dec 2006 00:31:38
Message-Id: 200612240131.13881.info@dbolliger.ch
In Reply to: Re: [gentoo-user-de] [OT] Bash-Frage: Inkrementieren von MAC-Adressen für XEN-Instanzen? by Werner Jansen
1 Werner Jansen am Samstag, 23. Dezember 2006 22:23:
2 > Guten Abend!
3 >
4 > On Fri, 22 Dec 2006 21:43:46 +0100
5 >
6 > Werner Jansen <jansenw@××××××.edu> wrote:
7 > > On Fri, 22 Dec 2006 13:10:28 +0100
8 > >
9 > > Dirk Göttel <dgoettel@×××××××.de> wrote:
10 > > > Hi
11 > >
12 > > Guten Abend!
13 > >
14 > > > > Als nächstes möchte ich die MAC-Adresse um eins "hochzählen"
15 [snip]
16 > OLDMAC=0x$(< $BASEDIR/nextMAC)
17 > NEWMAC=$(printf "%012x" $(( ${OLDMAC//:/} + 0x1 )) | sed -e \
18 > "s/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/" )
19 >
20 > Was mir noch nicht so gut gefällt, ist das "Zusammenbauen" bzw.
21 > Einfügen der Doppelpunkte. Kann ich den sed-Ausdruck irgendwie
22 > kürzer fassen?
23
24 > Oder gar etwas ganz anderes machen?
25
26 Hallo
27
28 Für den Fall, dass Du dafür einen perl interpreter starten willst,
29 Dich für's hochzählen entschieden hast, sehr viele Instanzen planst,
30 und für 128stellige MACs vorbereitet sein willst, habe ich mal etwas gespielt
31 ;-)
32
33 $ echo 00:16:3e:00:FF:FF | perl -le 'use Math::BigInt lib=>q(GMP); $"=q();
34 my @a1=split q(), (++(my $x=Math::BigInt->new(join q(), q(0x), split q(:),
35 <STDIN>)))->as_hex;
36 my @a2=splice(@a1, 2);
37 print join q(:),(sprintf(q(%012s),"@a2"))=~/(..)/g;
38 '
39 00:16:3e:01:00:00
40
41
42 Gibt sicher auch eine kürzere Version dafür.
43
44 Frohe Weihnachten!
45
46 Dani
47
48 --
49 gentoo-user-de@g.o mailing list