Как проверить пренадлежит ли ip-адрес определённой подсети?
10.120.100.255/18
Сначала представить адрес и маску в двоичном виде
00001010.01111000.01100100.11111111/11111111.11111111.11000000.00000000
Затем применить побитове "И" к маске и адресу.
00001010.01111000.01000000.00000000
Затем перевести обратно в десятичную систему.
10.120.64.0
18 - это длина маски сети в битах, т.е. количество единиц в битовом представлении маски.
Если представить IP 10.120.100.255 адрес в двоичной системе, получим:
0000 1010.0111 1000.0110 0100.1111 1111
Отсчитываем слева 18 бит - их оставляем как есть, остальное добиваем нулями:
0000 1010.0111 1000.0100 0000.0000 0000
Переводим в десятичную систему побайтово:
10.120.64.0 - это адрес сети. 
Все IP адреса, у которых после этой процедуры получится такой адрес сети, принадлежат этой сети.
На самом деле, анализируя цифру 18 ясно, что последний значащий бит в маске находится в третьем байте адреса, поэтому достаточно было провести подобную операцию только над третьим байтом, оставляя в нем (18 минус 16) значащих левых бит маски, а остальные 6 бит забив нулями. При этом 1 и 2 байт будут как есть, а 4 байт - ноль.
Другой способ - через логическое И (этой операцией легко обнулить незначащие для адреса сети биты):
255.255.192.0 & 10.120.100.255 = 10.120.64.0
Число 255.255.192.0 - это левые 18 бит заполненные единицами остальные 14 бит добиты нулями.
В общем все довольно легко, если иметь под рукой двоичный калькулятор. Небольшая практика и дело в шляпе.