IP addresses are, for most home users, temporary only. The ISP will change them every few weeks/months, unless the user has a static IP (which usually costs more).
In addition, a user can take his laptop to a coffee shop and immediately log in from a different IP.
Therefore, IP address filtering is a good idea only if you want to geo-block users (country, state, etc.), but, to my honest opinion, not a good idea for authenticating a user over a long period of time.
You may just need to implement a cookie/session/localstorage with Javascript or server side technology such as PHP, which will be browser & computer specific.
Cookies + IP Address
Combining cookies/localStorage technology ALONG WITH IP address can actually be a good idea for having a 2nd level of securiy (i.e when IP changes, having an alert such as 'it seems as you are loging in from a different IP address, please answer security question...').
Also - when a user will login from a different browser but same computer (and same IP) you can have an extra verification question.
You can even implement a IP address history, such as gmail's.
However, if you had to choose only 1 of the methods - I'd definitely go with cookies/localStorage.
Examples of how to set and get local data in Javascript.
With localStorage (HTML5):
localStorage.setItem('userAuthenticated', '1');
localStorage.getItem('userAuthenticated');
With cookies:
function setCookie(cname,cvalue,exdays)
{
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
function getCookie(cname)
{
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++)
{
var c = ca[i].trim();
if (c.indexOf(name)==0) return c.substring(name.length,c.length);
}
return "";
}
Hope this helps!