需求:登入時比對上次 IP,不同則提示。目前想從文字日誌解析上次 IP。
CREATE TABLE login_history (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
user_id BIGINT NOT NULL,
login_ip VARCHAR(45) NOT NULL, -- 支援 IPv6
login_time DATETIME NOT NULL,
user_agent VARCHAR(500),
INDEX idx_user_time (user_id, login_time DESC)
);
登入流程:
SELECT login_ip FROM login_history WHERE user_id=? ORDER BY login_time DESC LIMIT 1INSERT INTO login_history (user_id, login_ip, login_time, user_agent) VALUES (?,?,NOW(),?)請將登入歷史寫入資料庫,勿解析日誌。IP 比對參考價值有限,建議結合裝置/地理/行為多維度風控。