Date: Fri, 9 Aug 2013 18:34:41 +0200 From: Fleuriot Damien <ml@my.gd> To: Peter Wemm <peter@wemm.org> Cc: FreeBSD Net <freebsd-net@freebsd.org>, s m <sam.gh1986@gmail.com> Subject: Re: how calculate the number of ip addresses in a range? Message-ID: <8B53C542-5CC3-45E6-AA62-B9F52A735EE5@my.gd> In-Reply-To: <CAGE5yCoBYS2%2BsHoQXZvWMNPTQeEEtDX7LAKSBHJAZ4_rA2-byQ@mail.gmail.com> References: <CAA_1SgEEeyCOk%2Bi9Zp725RfQ9s0tpELXL0SSBeiN%2B60z%2BxqYUg@mail.gmail.com> <CAGE5yCoBYS2%2BsHoQXZvWMNPTQeEEtDX7LAKSBHJAZ4_rA2-byQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Aug 8, 2013, at 10:27 AM, Peter Wemm <peter@wemm.org> wrote: > On Thu, Aug 8, 2013 at 12:04 AM, s m <sam.gh1986@gmail.com> wrote: >> hello guys, >>=20 >> i have a question about ip addresses. i know my question is not = related to >> freebsd but i googled a lot and found nothing useful and don't know = where i >> should ask my question. >>=20 >> i want to know how can i calculate the number of ip addresses in a = range? >> for example if i have 192.0.0.1 192.100.255.254 with mask 8, how many = ip >> addresses are available in this range? is there any formula to = calculate >> the number of ip addresses for any range? >>=20 >> i'm confusing about it. please help me to clear my mind. >> thanks in advance, >=20 > My immediate reaction is.. is this a homework / classwork / = assignment? >=20 > Anyway, you can think of it by converting your start and end addresses > to an integer. Over simplified: >=20 > $ cat homework.c > main() > { > int start =3D (192 << 24) | (0 << 16) | (0 << 8) | 1; > int end =3D (192 << 24) | (100 << 16) | (255 << 8) | 254; > printf("start %d end %d range %d\n", start, end, (end - start) + 1); > } > $ ./homework > start -1073741823 end -1067122690 range 6619134 >=20 > The +1 is correcting for base zero. 192.0.0.1 - 192.0.0.2 is two > usable addresses. >=20 > I'm not sure what you want to do with the mask of 8. >=20 > You can also do it with ntohl(inet_addr("address")) as well and a > multitude of other ways. Hold on a second, why would you correct the base zero ? It can be a valid IP address. = https://labs.ripe.net/Members/stephane_bortzmeyer/all-ip-addresses-are-equ= al-dot-zero-addresses-are-less-equal
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?8B53C542-5CC3-45E6-AA62-B9F52A735EE5>