Certo, è fattibile. L'idea è che calcoliamo la subnet mask impostando a 1 i bit più significativi, tanti quanti dettati dalla classe di sottorete. Per una classe C, sarebbe
SELECT -1 << 8;
Quindi E la subnet mask con l'indirizzo IP che hai; se l'IP è all'interno della sottorete, il risultato dovrebbe essere uguale all'indirizzo della sottorete -- roba di rete standard. Quindi finiamo con:
SELECT (-1 << 8) & INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");
Aggiornamento: Sì, è necessario conoscere la classe di rete o la subnet mask (che è un'informazione equivalente). Considera come potresti gestire il caso in cui la sottorete è X.Y.0.0
se non avessi queste informazioni. È questo X.Y.0.0/16
o X.Y.0.0/8
dove il terzo ottetto accade e basta essere 0? Non c'è modo di saperlo.
Se conosci la subnet mask, la query può essere scritta come
SELECT (-1 << (33 - INSTR(BIN(INET_ATON("255.255.255.0")), "0"))) &
INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");