Comments (11)
Задумывался о таком. Нужно еще отключать IPv6, если обнаружен Teredo (2001::/32
) и 6to4 (2002::/16
)
from blockcheck.
К внешним зависимостям как относитесь? Было бы конечно проще вытянуть https://pypi.python.org/pypi/ipwhois чтобы не писать свой RDAP парсер для того чтобы вытягивать принадлежность сети к ASN потом. И заодно использовать более свежие данные из RIR для других частей кода где это ввиде хака
from blockcheck.
Не знаю, насколько надежно проверять AS. Могут быть у провайдера разные AS для IPv4 и IPv6? Может, лучше проверять страну, или вовсе ограничиться проверкой на Teredo и 6to4?
На сервер редко приходят отчеты с не-провайдерским и не-Teredo IPv6. Думаю, люди запускают программу с --no-report
или отключают туннель.
IPv6 поддерживают только тесты DNS и HTTP. Проверка сертификата HTTPS и обхода DPI работает только по IPv4 (см. #52)
К внешним зависимостям как относитесь?
Нормально, если они pure python.
from blockcheck.
Не знаю, насколько надежно проверять AS. Могут быть у провайдера разные AS для IPv4 и IPv6?
Надежно 100%, разные ASN для разных address family не дает никаких фич. Тем кому нужны разные ASN в пределах оператора все равно используют IPv4/IPv6 локальной AS, это банально удобное и проще.
Может, лучше проверять страну, или вовсе ограничиться проверкой на Teredo и 6to4?
На сервер редко приходят отчеты с не-провайдерским и не-Teredo IPv6. Думаю, люди запускают программу с --no-report или отключают туннель.
Teredo и 6to4 и не выбирает адреса в браузерах chrome/firefox, только если удаленный сервер находиться в той же подсети, ввиду приоритетов выбора source адреса
https://tools.ietf.org/html/rfc6724#section-2.1
Prefix Precedence Label
::1/128 50 0
::/0 40 1
::ffff:0:0/96 35 4
2002::/16 30 2
2001::/32 5 5
fc00::/7 3 13
::/96 1 3
fec0::/10 1 11
3ffe::/16 1 12
В любом случае их легко определять и отключать при необходимости
from blockcheck.
Надежно 100%
Нашел тест, где у человека разные ASN для IPv4 и IPv6, но IPv6, с большой долей вероятности, провайдерский.
IP: 109.167.200.0/24, IPv6: 2a02:2510:2:2:a617::/48, провайдер: WestCall Ltd./ ВестКолл Домашние сети
109.167.192.0/18 AS25408
2a02:2510::/32 AS44068
Teredo и 6to4 и не выбирает адреса в браузерах chrome/firefox
Blockcheck не полагается на getaddrinfo, а получает A и AAAA-записи через Google DNS-over-HTTPS API, затем тестирует IPv4 и IPv6 отдельно, открывая сокет на IP-адрес. Мне приходят результаты тестирования с Teredo-адресами, и сейчас программа их воспринимает, будто это обычный рабочий IPv6-адрес.
from blockcheck.
В догонку:
IP: 95.28.188.xxx, IPv6: 2001:67c:2b8c:xxxx:xxxx:xxxx:xxxx:xxxx, провайдер: JSC Beeline-Samara/ Билайн
2001:67c:2b8c::/48 AS33842
95.28.188.0/24 AS8402
from blockcheck.
Нашел тест, где у человека разные ASN для IPv4 и IPv6, но IPv6, с большой долей вероятности, провайдерский.
IP: 109.167.200.0/24, IPv6: 2a02:2510:2:2:a617::/48, провайдер: WestCall Ltd./ ВестКолл Домашние сети
Две разные автономки никак не связанные с друг с другом, у них даже взаимоотношений нет судя по транзиту. Разные ASN имеет смысл когда у тебя есть sub-ASN (купил сеть допустим) и ты ей даешь IPv6 адреса из своей ASN (или наоборот) основной, но тогда бы это было видно в bgp (анонсы были бы за первой AS). И я точно знаю что у ВестКолл IPv6 даже близко не в продакшене для конечных юзеров.
Можно PTMU проверять, но это только зря время тратить
Второй приведенный пример, это тунель, я знаю 100% потому что мой.
Blockcheck не полагается на getaddrinfo, а получает A и AAAA-записи через Google DNS-over-HTTPS API, затем тестирует IPv4 и IPv6 отдельно, открывая сокет на IP-адрес. Мне приходят результаты тестирования с Teredo-адресами, и сейчас программа их воспринимает, будто это обычный рабочий IPv6-адрес.
Да я в этом контексте не подумал, надо конечно добавить список игнорируемых сетей
from blockcheck.
В таком случае, могу только предположить, что у человека два провайдера: IPv4 от одного, IPv6 от другого.
Делайте, если хотите. Только сделайте опцию --force-ipv6
.
from blockcheck.
Как я уже выше сказал у него может быть обычный IPv6inIPv4
туннель. Попробую сделать
from blockcheck.
ASN будем печатать текстом? юзеру может быть и не к чему, а для статистики удобно наврное было бы чтобы сравнить
from blockcheck.
from blockcheck.
Related Issues (20)
- Не работает определение провайдера и IP-адреса HOT 3
- Релиз Blockcheck v0.0.9.6 под macOS. HOT 1
- версия 0.0.9.6 не запускается на macOS HOT 4
- Cant install the requirements HOT 3
- Хотелось бы иметь возможность прогонять скрипт по собственным сайтам. HOT 6
- Translation HOT 2
- Version 0.0.9.6 use incorrect url for http test because it's redirected to https and not working HOT 8
- ESNI HOT 20
- SNI based DPI detection HOT 4
- e621.net якобы не открывается HOT 5
- Ваш провайдер не перенаправляет сторонние IPv4 DNS-серверы на свой.
- Экспериментальная версия для тестирования TLS HOT 8
- no $DISPLAY environment variable HOT 2
- Падает на kubuntu 19.10 HOT 2
- [Suggestion] Generate recommendations for GoodbyeDPI HOT 1
- Фейковый прокси прописанный в настройках прокси IE влияет на blockcheck HOT 1
- надо бы доработать логику в соответствии с российскими реалиями
- Друг, ты живой? что-то обнов нету давно утилита пишет чекнуть обнову HOT 6
- EmercoinDNS HOT 1
- Некорректное определение блокировок HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from blockcheck.