Сейчас экспериментирую с другим алгоритмом проверки (отправка 64кб данных а не получение) и использование IP вместо доменов.
Это должно решить проблемы с белыми списками и будет легче добавлять на проверку новые цели.
Сейчас экспериментирую с другим алгоритмом проверки (отправка 64кб данных а не получение) и использование IP вместо доменов.
Это должно решить проблемы с белыми списками и будет легче добавлять на проверку новые цели.
Версия 2.0 почти готова, надеюсь выпущу на выходных.
Будет новый алгоритм детекта tcp16 блокировок путем отправки GET запроса с 64кб header на IP разных AS. (Спасибо @0ka за идею).
Также разные фиксы, улучшение производительности и UI
Также постепенно буду превращать инструмент в мультитул:
Не знаю, войдет ли что-то из этого в след релиз.
К слову, сейчас еще ищу домен у которого один IPv4, при ресолве которого провайдеры выдают фейковый NXDOMAIN путем перехвата запроса к 8.8.8.8
Например как с youtube.com
Кросс-платформенный однострочник на питоне для теста сайтов или IP на TCP16-20 блокировку с возможность указать свой SNI:
python3 -c "import base64;exec(base64.b64decode('aW1wb3J0IHNvY2tldCBhcyBzLHNzbDtoPWlucHV0KCdUYXJnZXQ6Jyk7bj1pbnB1dCgnU05JOicpO3o9c3NsLmNyZWF0ZV9kZWZhdWx0X2NvbnRleHQoKTt6LmNoZWNrX2hvc3RuYW1lPTA7ei52ZXJpZnlfbW9kZT0wO3c9ei53cmFwX3NvY2tldChzLmNyZWF0ZV9jb25uZWN0aW9uKChoLDQ0MyksNSksc2VydmVyX2hvc3RuYW1lPW4pO3E9ZiJIRUFEIC8gSFRUUC8xLjFcclxuSG9zdDoge259XHJcbkNvbm5lY3Rpb246IGtlZXAtYWxpdmVcclxuWC1QOiB7J1gnKjQwMDB9XHJcblxyXG4iLmVuY29kZSgpO2k9MAp0cnk6CiBmb3IgaSBpbiByYW5nZSgxLDExKToKICB3LnNlbmRhbGwocSk7cj13LnJlY3YoNDA5NikKICBpZiBub3QgcjpicmVhawogIHByaW50KGYnXHIge2kqNH1LJyxlbmQ9JycsZmx1c2g9MSkKIHByaW50KCdcbicscls6MzBdKQpleGNlcHQgRXhjZXB0aW9uIGFzIGU6cHJpbnQoZidcbkRyb3AgYXQge2kqNH1LOicsdHlwZShlKS5fX25hbWVfXyk=').decode())"
Вывод:
Target:95.100.133.105
SNI:media.miele.com
16K
Drop at 20K: TimeoutError
Что закодировано в base64:
import socket as s,ssl;h=input('Target:');n=input('SNI:');z=ssl.create_default_context();z.check_hostname=0;z.verify_mode=0;w=z.wrap_socket(s.create_connection((h,443),5),server_hostname=n);q=f"HEAD / HTTP/1.1\r\nHost: {n}\r\nConnection: keep-alive\r\nX-P: {'X'*4000}\r\n\r\n".encode();i=0
try:
for i in range(1,11):
w.sendall(q);r=w.recv(4096)
if not r:break
print(f'\r {i*4}K',end='',flush=1)
print('\n',r[:30])
except Exception as e:print(f'\nDrop at {i*4}K:',type(e).__name__)
Релизнул dpi-detector v2.0.1
win7/8.exe билд для win7/8Не очень понятно, что происходит при выборе 4-го пункта. Экран начинает “плясать”, переписывая строки.
В файл, если выбран пункт с сохранением файла результатов, сваливается несколько мегабайт таблиц со сбитой рамкой. Как в этом ориентироваться? Смотреть самую последнюю таблицу с результатом? Выполняется тестирование довольно долго, нет никакой индикации, сколько ждать и т.д.
Там реалтайм обновление таблицы сделал, но видимо не у всех оно нормально отображается, да и и с логами проблема. Переделаю под какой-то другой формат.
Может, стоит сделать вывод в csv и отдельно короткий отчет с результатом?
Релизнул dpi-detector v2.1.0
Отдельное вам спасибо за win7! Но на моей 7-ке почему-то ни в какую не работает 4-ый пункт. Просто бесконечно обновляется таблица, в файл ничего не пишется (он даже не создается). ЧЯДНТ?
Известно, будет исправлено в будущих релизах. Хотя насчет создания файла не уверен)
Он должен создаваться после завершения работы, а из-за пары AS очень долго перебираются SNI, т.к. для них подходящих нет. Наверно поэтому и не сохраняет в файл - выход раньше времени.
Аа, понятно, ок)
Учитывая на какие сайты он стучит это немного подстава была…
А при загрузке внешнего config.py. выдает ошибку…Может взять более нейтральное по дефолту или предупреждать?
согласен, в зефире такая же проблема и автор отказался убирать
Не пользуйтесь левыми exe. Ставьте сами python, пакеты из pip и редактируйте .py конфиги как в линуксе.
Я тестировал на entware, не всё что нужно нашёл.
Временно убрана ссылка из 16кб блокировка
На win пока что можно использовать батник 16kbCheckV2.zip - добавлен подбор sni
C какими сайтами проблема?