To persist user information reliably you should store it on your server with some kind of user id based on the cookie etc. Php sessions only support sessions, so are helpful to maintain identity within a session. Once a user closes his browser and starts it up again the PHP session may be gone. Similarly cookies may be gone as well.
Relying on IPv4 addresses however is not going to get you very far. Even disregarding people on dynamic IP addresses (every time they access the internet they have a different ip) there are plenty of people sharing IP's through NAT. You don't want to share a user for an entire office of people do you?
So in short, you could use PHP sessions in addition to your normal cookie (in case the user disables cookies) but you cannot get his identity back if he is anonymous and he decides to delete his cookies. Remember that under water PHP sessions work by means of cookies (and fall back request parameters only when cookies are disabled)