Одного IP-адреса недостаточно:
- Несколько пользователей могут иметь один и тот же IP-адрес (например, пользователи за прокси-сервером на работе)
- Один пользователь может иметь несколько IP-адресов (например, пару лет назад для пользователей AOL)
В такой ситуации я обычно использую что-то, основанное на сочетании:
- IP-адрес
- и несколько других заголовков HTTP, например:
- User-Agent (например, он может быть таким сложным, как "
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1.7pre) Gecko/20091221 Ubuntu/9.10 (karmic) Firefox/3.5.6
")
- Принять (например, "
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
")
- Accept-Language (например, "
fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3
")
- Accept-Charset (например, "
ISO-8859-1,utf-8;q=0.7,*;q=0.7
")
Если только один из них отличается от предыдущего запроса, я считаю, что все в порядке; но если более 2 или 3 из них отличаются, это странно и часто означает, что это не тот же пользователь.