(продолжение комментариев выше ...)
Как оказалось, никакого сложного машинного обучения вообще не требуется.Вы можете получить всю необходимую информацию, подключившись только один раз.Когда вы подключаетесь к IP-сети и получаете адрес, вы получаете адрес и маску подсети (посмотрите, если вы не знакомы с условиями).Учитывая это, простой фрагмент побитовой арифметики покажет вам, является ли другой адрес частью той же сети:
if ((my_address & subnet_mask) == (unknown_address & subnet_mask)) { ...
, где unknown_address
- адрес, который вы тестируете.(Это выражение можно немного упростить, применив логические правила упрощения, но это форма, в которой очевидно, что происходит.)
Например, если вам присвоено:
address: 192.168.11.22
subnet: 255.255.255.0
тогда любой другой адрес является частью той же сети, если он начинается с 192.168.11.
.Опять же, человек, который настраивал сеть, очень сознательно сделал этот выбор.
Это очень напоминает мне так называемый вопрос о барометре , где один из возможных ответов - «торговля»барометр начальнику здания в обмен на требуемую информацию ".