简体   繁体   中英

taking an ip and getting the subnet mask, & cidr

I have found this website calculator that explains the ip class's (A,B,C,D,E ) and also how to get the subnet mask, he was not very clear about how to configure the number of nodes (formula for figuring out the number of 'host' bits), he says 'Since you know the number of nodes, you need to find 'n'.' to get 2^6 - /26. I don't understand how he knows to use 64 nodes.

subnet calculator

First depict the ip address in binary. Take 61.246.19.18 and convert to binary:

ip address: 00111101.11110110.00010011.00010010
First we determine what class of address it is:

If the first bit is 0 it is a Class A address If the first two bits are 10 it is a Class B address If the first three bits are 110 it is a Class C address If the first four bits are 1110 it is a Class D multicast address If the first four bits are 1111 it is a Class E experimental address

Your example is a Class A address. The default subnet mask for a Class A address is:

subnet mask: 11111111.00000000.00000000.00000000
The formula for figuring out the number of 'host' bits in a subnet mask is
2^n=(number of nodes ) (2^n means '2' to the power of 'n')
Since you know the number of nodes, you need to find 'n'.

Because you want 64 node(s), you want to leave 6 - '0' bits in the subnet mask since 64 = 2 ^ 6.
This will give you the following subnet mask:

subnet mask: 11111111.11111111.11111111.11000000
Which is referred to as /26 or in dotted decimal notation as 255.255.255.192  

Most of the topics here i have searched say this cannot be done to find the /cidr range from a given ip address, but this webpage subnet calculator does create the range from a given ip. I understand how to convert ip to binary and also get the class subnet mask, but he did not use these to get his 64 host bits result, I think he skipped how to configure the hosts bits after he converted the class subnet mask.

also alot of the online calculators also require you to manually put the cidr range, to get the ip's range, etc. this seems to be the only calculator example i can find that will create the ip information with only the given ip address.

I need to collect the ip range from just the given ip to block a user from my website from registering, if they have already been banned for chargeback reasons. So I would like to create a php script to compare a new user ip to the banned ip's list ranges. which would determine if they are ban evading by creating new accounts.

Thanks for any help.

From Networking point of view:

/26 means 26 Network bits and 6 hosts bits.

For simplification you can use this formula

Network Bits (NB) + Host Bits (HB) = 32

/26 represents netmask or we can say NB= 26, which means HB = 32-26 = 6

Which means you will have 64 nodes (2^HB => 2^6 = 64) in single subnet.

This simple CIDR Tutorial can be helpful.

You can also identify smallest possible network size from given IPs. Convert those IP to binary.Then calculate the common bits in IPs, that will be the network bits, based on which you can find subnet mask.

For example Let's say we have 2 IPs 192.168.24.12 and 192.168.24.76

192.168.24.12 in binary 11000000 10101000 00011000 0 0001100

192.168.24.76 in binary 11000000 10101000 00011000 0 1001100

Here first 25 bits are common bits. Which means these IPs can be from /25 subnet.

In this example, the number of nodes is your own input. This is you saying, I have 64 machines and I need to find enough IPs for them all on my given network. Then you use this calculation method to determine the subnet mask and IP allocation.

The article does a poor job explaining this, though.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM