Chắc chắn, nó có thể làm được. Ý tưởng là chúng ta tính toán mặt nạ mạng con bằng cách đặt các bit quan trọng nhất thành 1, nhiều nhất được quy định bởi lớp mạng con. Đối với lớp C, đó sẽ là
SELECT -1 << 8;
Sau đó, VÀ mặt nạ mạng con với địa chỉ IP bạn có; nếu IP nằm bên trong mạng con, kết quả sẽ bằng với địa chỉ mạng con - nội dung mạng tiêu chuẩn. Vì vậy, chúng tôi kết thúc với:
SELECT (-1 << 8) & INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");
Cập nhật: Có, cần phải biết lớp mạng hoặc mặt nạ mạng con (là thông tin tương đương). Hãy xem xét cách bạn có thể xử lý trường hợp mạng con là X.Y.0.0
nếu bạn không có thông tin này. Đây có phải là X.Y.0.0/16
không hoặc X.Y.0.0/8
nơi bát phân thứ ba vừa xảy ra là 0? Không có cách nào để biết.
Nếu bạn biết mặt nạ mạng con, thì truy vấn có thể được viết là
SELECT (-1 << (33 - INSTR(BIN(INET_ATON("255.255.255.0")), "0"))) &
INET_ATON("192.168.0.1") = INET_ATON("192.168.0.0");