Come progettare uno schema di database per la lista nera degli indirizzi IP
Voglio progettare un database per memorizzare gli indirizzi IP nella lista nera insieme alle funzioni API che un indirizzo IP ha usato troppo.
e.g. Ho un'API di login/password chiamata /login/
Voglio bloccare gli indirizzi IP che hanno troppi login. Voglio anche memorizzare whitelist di indirizzi IP; quindi voglio considerare se anche le whitelist devono essere memorizzate nella stessa tabella.
I problemi che ho sono i seguenti:-
(1) Memorizzo gli indirizzi IP IPv4 e IPv6 nella stessa tabella o in tabelle separate? (per esempio blacklist_ipv4 e blacklist_ipv6)
(2) Memorizzo gli indirizzi IP IPv4 e IPv6 nella stessa colonna - usando varbinary(16) e la funzione MySQL NET6_ATON('') o li separo.... Attualmente sto memorizzando gli indirizzi IP IPv4 come 4 colonne di tinyint(3) senza segno - ad esempio da 0 a 255
IP_1, IP_2, IP_3, IP_4
e ciascuna delle colonne è indicizzata e mi dà prestazioni estremamente buone
(3) Devo memorizzare gli indirizzi IP della whitelist e della blacklist insieme? La ragione per cui mi viene chiesto questo è che elimino gli indirizzi IP della lista nera dopo 24 ore, ma voglio mantenere quelli della lista bianca per sempre.
So che l'uso di IPv6 non è prevalente, ma recentemente ho visto alcuni casi di accesso ad alcune delle nostre risorse...