Определение tor

govnoproger.ru > интернет > Определение tor

Допустим вам надо узнать — использует ли посетитель (юзер) tor.
Зачем это нужно? Допустим — на основе полученных данных, вы хотите принимать какие-либо действия. Например самый примитив — забанить сразу.
Тут есть несколько способов:

Первый способ заключается в использовании списков спамных ip-адресов.
Например спамхаус или спамкоп. Большинство торовских ипов лежат в этих базах. Проблема заключается в том, что в этих базах могут лежать ip адреса юзеров находящихся за nat-ом. Возможно вы подумаете — «да и хрен с ними, их мало». На самом деле я уверяю вас, нас не мало, есть крупнейшие провайдеры.

Второй способ похож на первый.
Но тут, мы будем использовать готовую базу ip адресов.
Тут https://www.dan.me.uk/tornodes лежит список всех tor нод. Сейчас он обновляется раз в 30 минут.
Тут (не спешите жать на ссылку) https://www.dan.me.uk/torlist/ лежит список только ip адресов. Если вы зайдёте, то вас забанит на 1 час. То-есть вы можете дёргать этот список с интервалом в 1 час. Этого в принципе достаточно.

Третий способ совершенно иной.

<?

if (IsTorExitPoint()) 
{echo "y";}
 else echo "n";

function IsTorExitPoint()
{
	if (gethostbyname(ReverseIP($_SERVER['REMOTE_ADDR']).".".$_SERVER['SERVER_PORT'].".".ReverseIP($_SERVER['SERVER_ADDR']).".ip-port.exitlist.torproject.org")=="127.0.0.2") 
	{
		return true;
	} 
	else 
	{
		return false;
	} 
}

function ReverseIP($inputip)
{
	$ipoc = explode(".",$inputip);
	return $ipoc[3].".".$ipoc[2].".".$ipoc[1].".".$ipoc[0];
}
?> 

Функция ReverseIP — переворачивает ip адрес.
Например:
было 1.2.3.4
стало 4.3.2.1
В целом всё остальное понятно. Если имя хоста 127.0.0.2 — значит это выходная нода тора.

Рекомендую:

17.5.2012 | последняя редакция: 17.05.2012 |