zTDS - бесплатная ТДС - 2 часть

bolyk
На сайте с 16.02.2006
Offline
175
#81
sovim:
Друзья, помогите пожалуйста разобраться, перечитал много всего, понять так и не смог, как запретить трафик на офер с определенной страны? Создал группу в ней поток ,в потоке в GEO ставлю US и ставлю исключать, но происходит следующее, в тдс действительно исключаться из трафика US в статистике, а вот на офер все-равно идут переходы как и шли с US, помогите пожалуйста, что где выставить, что гарантированно отсекать странны мне не нужные от переходов на офер мой, в идеале его переправлять на другой мне нужный офер.

Это связано с ГЕО базами тдс. GeoIP2 в бесплатной версии не всегда точно позволяет определить страну. Да и вообще это не самая лёгкая задача. Для улучшения точности попробуйте купить/достать платную версию базы. Но и это не будет 100% панацеей.

Thunder v3. Дорген (http://ifirestarter.ru/product/10) | MassSiteProxy. Скрипт клонирования сайтов (http://ifirestarter.ru/product/12) | CPAgen CPA дорген (http://ifirestarter.ru/product/14) | (http://fast-index.ru/article)
bolyk
На сайте с 16.02.2006
Offline
175
#82

Сори, скрипт использует Sypex Geo, но суть от этого не меняется.

Как держать в актуальном состоянии ГЕО Базы для Ztds. (в Версии v.0.6.8 ГЕО базы от 2017 года!!!)

1) Идем сюда https://sypexgeo.net/ru/download/

2) Качаем файл Sypex Geo City в кодировке UTF-8!!!

3) Заменяем соответственный файл в /lib/sypex_geo/

Анабой Янсур
На сайте с 12.04.2011
Offline
114
#83
bolyk:
Для улучшения точности попробуйте купить/достать платную версию базы. Но и это не будет 100% панацеей.

Панацеей будет использование CF-IPCountry от cloudflare.

bolyk
На сайте с 16.02.2006
Offline
175
#84
V_G:
Панацеей будет использование CF-IPCountry от cloudflare.

Это очень дельное предложение. 🍻 Можно очень сильно ускорить работу zTDS.

А давайте сразу пропатчим zTDS, а уважаемый, root сам решить нужно это в ТДС или нет.

Буду делать на v.0.6.8, думаю что на новых тоже будет работать:

В index.php найдите участок кода:


$SxGeo = new SxGeo('lib/sypex_geo/SxGeo.dat');
$country = $SxGeo->getCountry($ipuser);
if(empty($country)){$country = $empty;}
else{$country = strtolower($country);}

Удалите или замените на:


if(isset($_SERVER['HTTP_CF_IPCOUNTRY'])) {
$country = $_SERVER['HTTP_CF_IPCOUNTRY'];
}else{
$SxGeo = new SxGeo('lib/sypex_geo/SxGeo.dat');
$country = $SxGeo->getCountry($ipuser);
}

if (empty($country)) {
$country = $empty;
} else {
$country = strtolower($country);
}

Плюсы:

- точность определения страны может быть сильно выше чем SxGEO

- скорость работы ТДС сильно возрастет(~ +30% ) , уменьшится нагрузка на диск (-3 запроса) при каждом обращении

Минусы:

- Может быть , что страна будет US, а регион Житомир. Это не страшно, так как сливаем в основном по стране.

- Спуфинг заголовков, но я не думаю, что рядовой рукоблуд будет подменять заголовки.

Можем так же пропатчить определение IP пользователя, если не доверяете своему серверу.

Найдите такой код:


if(!isset($ipuser)){
$ipuser = trim($_SERVER['REMOTE_ADDR']);
}

Перед ним, добавьте:


if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])){
$ipuser = $_SERVER['HTTP_CF_CONNECTING_IP'];
}

Плюсы:

- точность определения IP пользователя может быть выше чем у nginx

Минусы:

- Спуфинг заголовков

Внимание:

- Данные патчи актуальны тем, кто держат ТДС за Cloudflare. остальным, по сути, ничего не изменят.

- Если вы работаете с РФ трафом, некоторые IP Cloudflare могут быть заблокированы РКН и патчи грубо говоря вам не помогут, а скрипт будет работать так же как и до них.

- Я не могу гарантировать точность или, вообще, работоспособность патчей.🤣

billypelegrini
На сайте с 20.02.2019
Offline
47
#85

Я тебе скажу даже более, для тех кто под зарубежный траф работает решение тоже неактуально, там две и более секунд редиректа ждать никто не будет, я вообще не понимаю как можно тдс держать на пхп, в нём только компоненты сервера пока все прогрузятся сколько времени уходит)) Какие-то небоскрёбы из табуреток строятся..

billypelegrini
На сайте с 20.02.2019
Offline
47
#86

И никогда так не пиши больше

 $SxGeo = new SxGeo('lib/sypex_geo/SxGeo.dat');
$country = $SxGeo->getCountry($ipuser);
if(empty($country)){$country = $empty;}
else{$country = strtolower($country);}

 
$geo = new SxGeo('lib/sypex_geo/SxGeo.dat');

$country = $geo->getCountry($ip);

if (empty($country))
{
$country = $empty;
}
else
{
$country = strtolower($country);
}

Нег*внокодь

Даже вот так


$geo = new SxGeo('lib/sypex_geo/SxGeo.dat');

$country = $geo->getCountry($ip);

$country = strlen($country) ? $empty : strtolower($country);

или вообще так


//только на класс обёртку одеть
$country = Ip::SxGeo('lib/sypex_geo/SxGeo.dat')->getCountry($ip);

$country = strlen($country) ? $empty : strtolower($country);

и не пользуйся empty . use strict и всё твое эмпти знаешь где))) нетипизированный оператор, им не пользуются уже лет пять наверно)

даже так с обёрткой класса:


$country = Ip::SxGeo('lib/sypex_geo/SxGeo.dat')
->getCountry($ip)
->validate();

Ненавижу лэгаси код.

bolyk
На сайте с 16.02.2006
Offline
175
#87

Весь код взят из tds, причем тут я? Ztds спокойно 300rps делает, какие две секунды?

billypelegrini
На сайте с 20.02.2019
Offline
47
#88

Смотря на каком серваке, зачем мне ставить тдс на пхп если npm i express и строка кода, и зачем мне настривать LAMP связку, и это быстрее и не держит он 300rps а если и держит то нода держит 30000rps на двуядерном проце с 4Gb ОЗУ, вы просто нерентабельны со своим брахлом а агрессия к новым технологиям вызывает сомнения в адекватности

---------- Добавлено 20.12.2019 в 17:00 ----------

Как вы работаете на этом, вы что мазохисты чтоли))Без ньютеха в современном вэбе ловить нечего, вы потому и злые такие что у вас дервянный паравоз и вы его вручную ремонтируете на ходу

---------- Добавлено 20.12.2019 в 17:02 ----------

bolyk, Я тебе без зла говорю у тебя в голове по разработке сейчас опилки, обращайся, покажу куда учиться, ты меня все равно не догонишь так что мне даже облегчение души показать направление, ты завязнешь тупо, ты уже завяз. Ты не устраивался на вакухи по 10к баксов и выше? Вот поустраивайся, просто пройди это, дальше свали и пили своё, но ты поймешь на каком уровне надо работать)

bolyk
На сайте с 16.02.2006
Offline
175
#89

Это тдска от очень уважаемого человека в этом разделе. Но вам этого не понять никогда. Человек взял: написал и выложил. Какая бы ztds не была, какое бы качество кода там не было, но люди используют, включая тех кто делает 10к+ в 17 лет, даже попу от дивана не отрывая.

И да, для своей тдс я, тоже, выбрал php, именно потому, что нода не смогла взять 100к rps, даже голая.

ПС:

$country = strlen($country) ? $empty : strtolower($country);

strlen - всегда возвращает int.

billypelegrini
На сайте с 20.02.2019
Offline
47
#90

Какая разница насколько он уважаем, у меня на здачах секундомер, секундомер выше всех уважаемых людей галактики.

Ты не шаришь в ноде, реально нешаишь, разницу видно даже без таймеров, отдаёт быстрее страницу в разы -- нажал -- сразу видишь не то что в пхп и лампе.

Потом лично я занеуважал, говнокодер.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий