Il REPLACE funzionerebbe benissimo se la tabella fosse studiata bene, in quanto questa funzione di MySQL ha la stessa valenza dell'INSERT solo che se dovesse trovare valori corrispondenti (al nuovo inserimento) per una CHIAVE PRIMARIA e una UNIQUE va a sostituire quelli che già ci sono nel database.

Quindi la tua tabella o la fai così:
codice:
CREATE TABLE login (
  ip VARCHAR(15) NOT NULL,
  data TIMESTAMP,
  PRIMARY KEY(ip)
);
oppure:
codice:
CREATE TABLE login (
  id INT(10) NOT NULL,
  ip VARCHAR(15) NOT NULL,
  data TIMESTAMP,
  PRIMARY KEY(id),
  UNIQUE (ip)
);

anche se trovo inutile la presenza del campo ID in quanto l'identificativo univoco è sicuramente l'indirizzo IP.