How to keep track of unique node views?
You can try Node View Count module.


  Node View Count module allows to count node views. Unlike statistics module, this module records each view of node with user uid and timestamp. So now you can know how many times a user viewed node by day, week, month and etc.


To print the count in teasers. 


Implement hook_node_view()
Check the $node-&gt;type and $view_mode
Call nodeviewcount_db_count_node_views($node, $user = NULL, $distinct_users = FALSE) to get the count
Add the count to $node-&gt;content
In your template file print the count that you added.


Update:

You cannot rely on IP for uniqueness,  but if you want to count unique views based on IP then follow one of the below steps.


The accesslog table will contain all the access logs with IP details, you can query this table for path like node/nid and group by IP to get the count, One thing to note is that accesslog will be cleared periodically, if you are going to use this table then you have to make sure that it won't be cleared by selecting never in Discard access logs older than. I will not suggest doing this way because this table will contain access log for all pages, though there is a moule Better Statistics using which you can restrict statistics to log access details only for node pages.
Or, you can create a custom module and create a custom table somewhat similar to accesslog and then implement hook_node_view() to populate the table, later you can query the table to get the count.