# [Kind of OT] Subnetting calculator for Linux (or a good one for WindowZ)

James Wilkinson ubuntu at westexe.demon.co.uk
Tue May 24 16:35:07 UTC 2005

```Steve Kratz wrote:
> Now, the problem lies in the next customer (D) wants 90 Ips, which so
> he's going to get a /25 block of 128 addresses. ALL of the calculators
> I've tried end up choking on this. From my own guesswork, it should end
> up with a range of .88 to .215... But, all of the calculators end up
> saying that for 64.x.y.88 (network address) with a netmask of /25, ends
> up starting back at .0 to .127, which is wrong (am I correct on this?)
>
> Am I totally out of the ballpark on this, or is there some fundamental
> calculation problem the calculators have?

You need to do this in binary, once.

A /25 has a netmask of
11111111.11111111.11111111.1000000
Which means that everything up to the first zero is FIXED.
So if you get 64.x.y.88, that's going to be
00100000.xxxxxxxx.yyyyyyyy.0101100
and the largest member of that net is
00100000.xxxxxxxx.yyyyyyyy.0111111
or 64.x.y.127.

64.x.y.215 is
00100000.xxxxxxxx.yyyyyyyy.11010111
Notice how the first bit of the last byte is 1? That means it's in a
different /25.

You'll note that this means /25s can only start on .0 or .128

Depending on how you want to work, you'll either need to leave gaps that
you can fill in later, or assign part of your address range for
customers that want a /25, another part for customers that want a /26,
and so on. And then they'll all fit in neatly.

Hope this helps,

James.

--
E-mail address: james | "Now I've got the bead on you with MY disintegrating
@westexe.demon.co.uk  | gun.  And when it disintegrates, it disintegrates.
| (pulls trigger)  Well, what you do know,
| it disintegrated."  -- Daffy Duck

```