Closed LebedevRI closed 9 years ago
Хм, а уберите вообще except там, и запустите в консоли (./blockcheck.py --console), хотел бы увидеть exception.
$ ./blockcheck.py --console
[O] Тестируем DNS
[O] Получаем эталонные DNS с сервера
Эталонные адреса: ['5.178.68.100', '69.165.95.242', '78.110.160.185']
Traceback (most recent call last):
File "./blockcheck.py", line 327, in <module>
main()
File "./blockcheck.py", line 267, in main
dns = test_dns()
File "./blockcheck.py", line 150, in test_dns
resolved_default_dns = _get_a_records(sites_list)
File "./blockcheck.py", line 107, in _get_a_records
for item in _get_a_record(site, dnsserver):
File "./blockcheck.py", line 94, in _get_a_record
for item in resolver.query(site).rrset.items:
File "/usr/lib/python3/dist-packages/dns/resolver.py", line 901, in query
raise NXDOMAIN
dns.resolver.NXDOMAIN
Хм, у вас первый DNS-сервер не работает? Или у вас IPv6?
Ни одно из этого. (Локально я использую unbound + dnssec-trigger) Похоже что по skidows.ru ни один из серверов не возвращяет ответ...
dig @8.8.8.8 skidows.ru
; <<>> DiG 9.9.5-11-Debian <<>> @8.8.8.8 skidows.ru
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 5376
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;skidows.ru. IN A
;; AUTHORITY SECTION:
ru. 1461 IN SOA a.dns.ripn.net. hostmaster.ripn.net. 4023951 86400 14400 2592000 3600
;; Query time: 1 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Thu Aug 13 14:04:37 MSK 2015
;; MSG SIZE rcvd: 100
Хотя оригинальные сервера из whois
whois skidows.ru
% By submitting a query to RIPN's Whois Service
% you agree to abide by the following terms of use:
% http://www.ripn.net/about/servpol.html#3.2 (in Russian)
% http://www.ripn.net/about/en/servpol.html#3.2 (in English).
domain: SKIDOWS.RU
nserver: dns1.yandex.net.
nserver: dns2.yandex.net.
state: REGISTERED, NOT DELEGATED, VERIFIED
person: Private Person
registrar: REGRU-RU
admin-contact: http://www.reg.ru/whois/admin_contact
created: 2014.12.21
paid-till: 2015.12.21
free-date: 2016.01.21
source: TCI
Last updated on 2015.08.13 14:01:32 MSK
возвращают:
dig @dns1.yandex.net skidows.ru
; <<>> DiG 9.9.5-11-Debian <<>> @dns1.yandex.net skidows.ru
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20895
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 2800
;; QUESTION SECTION:
;skidows.ru. IN A
;; ANSWER SECTION:
skidows.ru. 21600 IN A 46.148.17.146
;; Query time: 2 msec
;; SERVER: 213.180.204.213#53(213.180.204.213)
;; WHEN: Thu Aug 13 14:06:24 MSK 2015
;; MSG SIZE rcvd: 55
А, хм, посмотрю, можно ли его заменить на что-то более стабильное.
Да, спасибо.
Но все-равно, мне кажется не стоит прерывать обработку если один из доменов возвращает NXDOMAIN. Хотя возможно, NXDOMAIN нужно ловить отдельно и явно предупреждать об этом.
Вобщем скажете если/как я могу исправить код.
Как-то так, наверное.
Да, так лучше. (возможно стоит писать с каким именно доменом это произошло)
$ ./blockcheck.py
[O] Тестируем DNS
[O] Получаем эталонные DNS с сервера
Эталонные адреса: ['5.178.68.100', '69.165.95.242', '78.110.160.185']
[!] Невозможно получить DNS-запись (NXDOMAIN). Результаты могут быть неточными.
Адреса через системный DNS: ['5.178.68.100', '69.165.95.242', '78.110.160.185']
[!] Невозможно получить DNS-запись (NXDOMAIN). Результаты могут быть неточными.
Адреса через Google DNS: ['5.178.68.100', '69.165.95.242', '78.110.160.185']
[!] Невозможно получить DNS-запись (NXDOMAIN). Результаты могут быть неточными.
Адреса через DNS AntiZapret: ['107.150.11.192', '107.150.11.192', '107.150.11.192']
[✓] DNS записи не подменяются
[✓] DNS не перенаправляется
[O] Тестируем HTTP
Открываем http://sukebei.nyaa.se/
[✓] Сайт открывается
Открываем http://skidows.ru/20648-nastoyaschiy-detektiv-true-detective-2-sezon-1-2-serii-iz-8-2015-hdtvrip-amedia.html
[☠] Сайт не открывается
Открываем http://sukebei.nyaa.se/?page=view&tid=395631
[☠] Сайт не открывается
Открываем http://gelbooru.com/
[✓] Сайт открывается
Открываем http://gelbooru.com/index.php?page=post&s=view&id=1989610
[☠] Сайт не открывается
Открываем http://skidows.ru/
[☠] Сайт не открывается
Открываем через прокси http://sukebei.nyaa.se/
[✓] Сайт открывается
Открываем через прокси http://skidows.ru/20648-nastoyaschiy-detektiv-true-detective-2-sezon-1-2-serii-iz-8-2015-hdtvrip-amedia.html
[☠] Сайт не открывается
Открываем через прокси http://sukebei.nyaa.se/?page=view&tid=395631
[✓] Сайт открывается
Открываем через прокси http://gelbooru.com/
[✓] Сайт открывается
Открываем через прокси http://gelbooru.com/index.php?page=post&s=view&id=1989610
[✓] Сайт открывается
Открываем через прокси http://skidows.ru/
[☠] Сайт не открывается
[O] Тестируем HTTPS
Открываем https://2chru.net/
[☠] Сайт не открывается
[!] Результат:
[⚠] У вашего провайдера "полный" DPI. Он отслеживает ссылки даже внутри прокси, поэтому вам следует использовать любое шифрованное соединение, например, VPN или Tor.
Готово, проверьте.
Да, все отлично, спасибо!
$ ./blockcheck.py
[O] Тестируем DNS
[O] Получаем эталонные DNS с сервера
Эталонные адреса: ['162.159.243.197', '162.159.244.197', '5.178.68.100', '69.165.95.242', '78.110.160.185']
Адреса через системный DNS: ['162.159.243.197', '162.159.244.197', '5.178.68.100', '69.165.95.242', '78.110.160.185']
Адреса через Google DNS: ['162.159.243.197', '162.159.244.197', '5.178.68.100', '69.165.95.242', '78.110.160.185']
Адреса через DNS AntiZapret: ['107.150.11.192', '107.150.11.192', '107.150.11.192', '107.150.11.192']
[✓] DNS записи не подменяются
[✓] DNS не перенаправляется
[O] Тестируем HTTP
Открываем http://gelbooru.com/
[✓] Сайт открывается
Открываем http://sukebei.nyaa.se/
[✓] Сайт открывается
Открываем http://sukebei.nyaa.se/?page=view&tid=395631
[☠] Сайт не открывается
Открываем http://gelbooru.com/index.php?page=post&s=view&id=1989610
[☠] Сайт не открывается
Открываем через прокси http://gelbooru.com/
[✓] Сайт открывается
Открываем через прокси http://sukebei.nyaa.se/
[✓] Сайт открывается
Открываем через прокси http://sukebei.nyaa.se/?page=view&tid=395631
[✓] Сайт открывается
Открываем через прокси http://gelbooru.com/index.php?page=post&s=view&id=1989610
[✓] Сайт открывается
[O] Тестируем HTTPS
Открываем https://e621.net/
[☠] Сайт не открывается
Открываем https://2chru.net/
[☠] Сайт не открывается
[!] Результат:
[⚠] У вашего провайдера "обычный" DPI.
Вам поможет HTTPS/Socks прокси, VPN или Tor.
Так даже лучше: (для моего провайдера)
- [⚠] У вашего провайдера "полный" DPI. Он отслеживает ссылки даже внутри прокси, поэтому вам следует использовать любое шифрованное соединение, например, VPN или Tor.
+ [⚠] У вашего провайдера "обычный" DPI.
Не прерывать обработку списка сайтов при ошибке, просто переходить к следующему
Без этого, у меня все получения адресов не работали:
хотя вручную через dig(1) все было нормально:
И с моими изменениями:
Видимо, было сломлено в fb533703e529203021ad7579fbf71dd5783297c2
@sockeye44 у меня нету опыта с Python, так что я не знаю насколько мои изменения правильные и как они себя поведут в той ситуации, для которой тот коммит был предназначен. Так что было-бы неплохо, если-бы Вы проверили что мое изменение не ломает тот функционал.