how calculate the number of ip addresses in a range?

Fleuriot Damien ml at my.gd
Fri Aug 9 16:34:51 UTC 2013


On Aug 8, 2013, at 10:27 AM, Peter Wemm <peter at wemm.org> wrote:

> On Thu, Aug 8, 2013 at 12:04 AM, s m <sam.gh1986 at 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.


https://labs.ripe.net/Members/stephane_bortzmeyer/all-ip-addresses-are-equal-dot-zero-addresses-are-less-equal



More information about the freebsd-net mailing list