Разбира се, изпълнимо е. Идеята е, че изчисляваме маската на подмрежата, като задаваме най-значимите битове на 1, колкото са продиктувани от класа на подмрежата. За клас C това би било
SELECT -1 << 8;
След това И маската на подмрежата с IP адреса, който имате; ако IP е вътре в подмрежата, резултатът трябва да е равен на адреса на подмрежата - стандартни мрежови неща. Така че завършваме с:
SELECT (-1 << 8) & INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");
Актуализация: Да, необходимо е да знаете мрежовия клас или маската на подмрежата (която е еквивалентна информация). Помислете как бихте могли да се справите със случая, когато подмрежата е X.Y.0.0
ако не разполагате с тази информация. Това X.Y.0.0/16
ли е или X.Y.0.0/8
където третият октет току-що се случва да бъде 0? Няма начин да знам.
Ако знаете маската на подмрежата, тогава заявката може да бъде написана като
SELECT (-1 << (33 - INSTR(BIN(INET_ATON("255.255.255.0")), "0"))) &
INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");