Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 9 Aug 2013 15:44:52 -0700
From:      Peter Wemm <peter@wemm.org>
To:        Fleuriot Damien <ml@my.gd>
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:  <CAGE5yCqURzYF2TYez6S6y=x4rWtKdL%2B-3zjGsDuz2LqGb18-RQ@mail.gmail.com>
In-Reply-To: <8B53C542-5CC3-45E6-AA62-B9F52A735EE5@my.gd>
References:  <CAA_1SgEEeyCOk%2Bi9Zp725RfQ9s0tpELXL0SSBeiN%2B60z%2BxqYUg@mail.gmail.com> <CAGE5yCoBYS2%2BsHoQXZvWMNPTQeEEtDX7LAKSBHJAZ4_rA2-byQ@mail.gmail.com> <8B53C542-5CC3-45E6-AA62-B9F52A735EE5@my.gd>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Aug 9, 2013 at 9:34 AM, Fleuriot Damien <ml@my.gd> wrote:
>
> 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,
>>>
>>> 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.
>>>
>>> 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?
>>>
>>> i'm confusing about it. please help me to clear my mind.
>>> thanks in advance,
>>
>> My immediate reaction is.. is this a homework / classwork / assignment?
>>
>> Anyway, you can think of it by converting your start and end addresses
>> to an integer.  Over simplified:
>>
>> $ cat homework.c
>> main()
>> {
>> int start =  (192 << 24) | (0 << 16) | (0 << 8) | 1;
>> int end =  (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
>>
>> The +1 is correcting for base zero. 192.0.0.1 - 192.0.0.2 is two
>> usable addresses.
>>
>> I'm not sure what you want to do with the mask of 8.
>>
>> 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.

There is one usable address in a range of 10.0.0.1 - 10.0.0.1.
Converting to an integer and subtracting would be zero.  Hence +1.

-- 
Peter Wemm - peter@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV
UTF-8: for when a ' just won\342\200\231t do.
<brueffer> ZFS must be the bacon of file systems. "everything's better with ZFS"



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAGE5yCqURzYF2TYez6S6y=x4rWtKdL%2B-3zjGsDuz2LqGb18-RQ>