Sprawdzanie IP opiera się najczęściej na mniej więcej takiej funkcji:
function get_IP(){
if ($_SERVER['HTTP_X_FORWARDED_FOR']) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return $ip;
}
Jak widzisz opiera się to o zmienne SERVER, a więc nie jest to do końca wiarygodne. Jedyne co możesz zrobić (jak nie chcesz haseł i loginów) to spróbować zebrać jak najwięcej informacji o osobie i porównywać to z tym, co zapiszesz sobie w bazie danych. Możesz wykorzystać do tego:
- ciasteczka - zarówno te klasyczne jak i te z flash (zwróć uwagę na to, że ciasteczka można próbować przenosić między komputerami, co może nie być dla Ciebie najlepsze)
- sprawdzenia IP - osoby łączące się przez proxy, mające zmienne IP mogą mieć problem
- sprawdzanie danych przeglądarki, domyślnego języka ($_SERVER['HTTP_USER_AGENT'], $_SERVER['HTTP_ACCEPT_LANGUAGE'], $_SERVER['HTTP_ACCEPT_CHARSET'], $_SERVER['HTTP_ACCEPT'], $_SERVER['HTTP_ACCEPT_ENCODING']) - zwykle dla danej przeglądarki jest stałe, ale nie może do końca jednoznacznie zidentyfikować osoby (według statystyk na mojej stronie najpopularniejszy zestaw ma około 25% czytelników)
według mnie każde z tych rozwiązań przyniesie sporo kłopotów i obciąży aplikacje, a każdego z nich nie stosował bym oddzielnie.
p.s.
Może można skorzystać z kont z jakiegoś serwisu społecznościowego (np Facebook API) do autoryzacji, ale nigdy z czymś takim nie pracowałem więc nie wiem (no i kwestia zasięgu)