Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw

Re: How to increment a MAC Address?

by dorward (Curate)
on May 23, 2005 at 09:19 UTC ( #459476=note: print w/replies, xml ) Need Help??

in reply to How to increment a MAC Address?

Something like this perhaps?

$" = ':'; for (my $int = 1; $int <= 999999999999; $int++) { my $leading = sprintf("%012d", $int); my @split = ($leading =~ /../g); print "@split\n"; }

Replies are listed 'Best First'.
Re^2: How to increment a MAC Address?
by rob_au (Abbot) on May 23, 2005 at 09:33 UTC
    The components of a MAC address, when expressed as a group of six octet values, are expressed as hexadecimal values (eg. FE:DC:BA:01:23:45) - Your code does not account for this with the maximal octet value of 99 (decimal) provided by your code.

    Although in stating this, I should note that this is a problem too with the problem description in the original thread post.


    perl -le "print unpack'N', pack'B32', '00000000000000000000001000000000'"

      yes, i know 99 is not valid, just that im simulating something out here, where i require the value as 99 and not in hex.
        if $_ holds your string, then this should increment it
        $_ = join ":",unpack "A2"x6, substr( ('0' x 12 . (1 + join '',split /:/,$_))), -12)
Re^2: How to increment a MAC Address?
by aditya.singh (Acolyte) on Jun 16, 2005 at 12:24 UTC
    You code prints:

    OP wants:
    00:00:00:00:02:99 and so on.

    Note: Once the pair of digit reaches 99, it does not roll back to 00.

      I've just tested it and it increments as expected (i.e. it does get past 1).

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://459476]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2022-07-02 04:46 GMT
Find Nodes?
    Voting Booth?
    My most frequent journeys are powered by:

    Results (102 votes). Check out past polls.