Нет действительно стандартного способа сделать это.Подсчет подписчиков всегда ненадежен, но вы можете получить хорошие оценки с его помощью.
Вот как Google это делает ( источник ):
Подсчет подписчиков рассчитывается путем сопоставленияКомбинации IP-адресов и считывателей каналов, а затем мы используем наше детальное понимание множества читателей, агрегаторов и ботов на рынке, чтобы сделать дополнительные выводы.
Конечно, часть этого проста для Google, так каксначала они могут рассчитать, сколько пользователей Google Reader подписаны на данный канал.После этого они также используют сопоставление IP-адресов, и это то, что вы также должны использовать.
Вы можете рассчитать отдельные IP-адреса (то есть уникальные) из журналов веб-серверов, но это будет считать 10 человек как 1, если онивсе используют один и тот же адрес.Вот почему вы должны проверять HTTP-заголовки, которые отправляет клиент, более конкретно поля заголовка HTTP_X_FORWARDED_FOR и HTTP_VIA
.Вы можете использовать адрес HTTP_VIA
в качестве «основного» адреса, а затем вычислить, сколько уникальных адресов HTTP_X_FORWARDED_FOR
подписано на канал.Если у подписчика нет этих полей для добавления прокси, он считается уникальным IP-адресом.Это должно быть обработано в коде, который генерирует канал.Вы также можете добавить поиск GeoIP для IP-адресов и сохранить все в базе данных.Это позволит вам увидеть, в какой стране больше всего подписчиков на ваш канал.
У него тоже есть проблемы.Все прокси не используют эти поля, и это не решает проблему подсчета подписчиков за шлюзами NAT.Это, однако, хорошая оценка.Кроме того, вы, вероятно, больше интересуетесь порядком величины, а не точным количеством подписчиков, не так ли?Если счетчик говорит, что у вас 5989 подписчиков, у вас, вероятно, больше подписчиков, так как счетчик дает вам нижнюю границу.