Вычислите широковещательный адрес от IP и маски подсети

В старых версиях MySQL переменные являются самым простым методом:

set @rn := 0;
set @grp := '';

update t
    set value = (@rn := if(@grp = t.group, @rn + 1,
                           if(@grp := t.group, 1, 1)
                          )
                )
    order by group, id;

В MySQL 8.0 используйте второй запрос fa06.

18
задан the Tin Man 16 November 2012 в 23:06
поделиться

2 ответа

Просто рассчитайте:

broadcast = ip | ( ~ subnet )

(Broadcast = ip-addr или инвертированная маска подсети)

широковещательный адрес имеет бит 1 , где маска подсети имеет бит 0 .

40
ответ дан 30 November 2019 в 06:36
поделиться

Может ли это быть?

unsigned broadcast(unsigned ip,unsigned subnet){
    unsigned int bits = subnet ^ 0xffffffff; 
    unsigned int bcast = ip | bits;

    return bcast;
}

Редактировать: Я считал, что ip и подсеть без "."

3
ответ дан 30 November 2019 в 06:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: