Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked
 
PerlMonks  

(tye)Re: BigInt usage

by tye (Sage)
on Feb 17, 2001 at 11:39 UTC ( #59107=note: print w/replies, xml ) Need Help??


in reply to BigInt usage

That would be true if you used signed integers. For unsigned integers, you will be fine. Even if you needed a few more bytes, Perl uses doubles so you can accurately deal with integers of about 56-bits each.

        - tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re: (tye)Re: BigInt usage
by ryan (Pilgrim) on Feb 17, 2001 at 12:56 UTC
    Sounds fair to me, so I tried it - am I correct in using "L" instead of "N" in the unpack?

    my @range = map { unpack "L", pack "C4", split /\./ } qw(10.0.0.0 10.1 +.0.0); print "@range\n"; # the numbers themselves print $range[1]-$range[0]+1, "\n"; # how many addresses for ($range[0]..$range[1]) { print join(".", unpack "C4", pack "N", $_), "\n"; }

    When i do the above it reverses the input to 0.0.0.10 -> 0.0.1.10 I can fix this up I guess, but why is it doing that?

    Am I using the wrong unpack data type?

      After some stuffing around I came up with a solution:

      The large integers are never a problem until the 'for' loop, so I just used the ACTUAL host count instead of the numbers representing each address, then added the original address representation that was subtracted when it is joined.

      I have limited the width of the range regardless because what I am doing with the IPs is fruitless when there are more than 1 million. So BigInt is useless anyway.

      my @range = map { unpack "N", pack "C4", split /\./ } $ARGV[0], $ARGV[ +1]; for (0..$range[1]-$range[0]) { print join(".", unpack "C4", pack "N", $_+$range[0]), "\n"; }
      I can't fault the code now, does exactly what I want in every case.

      Thanks.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2022-05-21 16:37 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you prefer to work remotely?



    Results (76 votes). Check out past polls.

    Notices?