Это общедоступные IP-адреса, и поэтому вы не должны играть с ними. Сделайте шаг назад, подумайте о том, чего вы пытаетесь достичь, а затем обновите свой вопрос с более подробной информацией.
Помимо того, что это публичные IP-адреса, использование адресов, которые находятся так далеко друг от друга, означает, что вам, вероятно, следует маршрутизировать между ними, а не настраивать маску сети ... что бы вы ни делали, это, вероятно, не сработает.
Чтобы ответить на ваш вопрос прямо (и, надеюсь, передать некоторое понимание подсетей):
IP-адрес представлен в десятичном виде, но сетевые маски - это « количество битов, которые должны совпадать », поэтому вам нужно уметь преобразовывать десятичное число в двоичное.
62 . 14 . 33 . 222
0011 1110 0000 1110 0010 0001 1101 1110
51 . 33 . 11 . 11
0011 0011 0010 0001 0000 1011 0000 1011
Теперь мы можем взять два двоичных адреса и посмотреть, когда первый бит будет другим:
0011 1110 0000 1110 0010 0001 1101 1110
0011 0011 0010 0001 0000 1011 0000 1011
^
Поскольку 5-й бит является первым, который отличается, ваша маска сети должна быть:
1111 0000 0000 0000 0000 0000 0000 0000
240 . 0 . 0 . 0
Часто обозначается как x.x.x.x/4
(четыре ведущих 1
с, затем все 0
с).
Когда компьютер пытается определить, может ли он напрямую обращаться к удаленному хосту, он использует маску сети. Ниже мы делаем побитовую операцию И, а затем сравниваем их.
if ((local_addr AND netmask) == (remote_addr AND netmask)) {
/* access directly */
} else {
/* access via router */
}
Сценарий № 1 (маска подсети /4
):
local address: 0011 1110 0000 1110 0010 0001 1101 1110
network mask: 1111 0000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
local network: 0011 0000 0000 0000 0000 0000 0000 0000
remote address: 0011 0011 0010 0001 0000 1011 0000 1011
network mask: 1111 0000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
remote network: 0011 0000 0000 0000 0000 0000 0000 0000
Локальные и удаленные сети совпадают, доступ напрямую.
Сценарий № 2 (маска подсети /5
):
local address: 0011 1110 0000 1110 0010 0001 1101 1110
network mask: 1111 1000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
local network: 0011 1000 0000 0000 0000 0000 0000 0000
remote address: 0011 0011 0010 0001 0000 1011 0000 1011
network mask: 1111 1000 0000 0000 0000 0000 0000 0000
-----------------------------------------------
remote network: 0011 0000 0000 0000 0000 0000 0000 0000
Локальные и удаленные сети не совпадают, доступ через роутер.