ValdikSS / blockcheck

Russian ISP blocking type checker NOTE: NOT WORKING CURRENTLY. ВНИМАНИЕ: НЕ РАБОТАЕТ НА ТЕКУЩИЙ МОМЕНТ
MIT License
1.37k stars 144 forks source link

ASN check #60

Closed nshopik closed 7 years ago

nshopik commented 7 years ago

Забыл проверку на --force-ipv6, обновлю

ValdikSS commented 7 years ago

У меня не работает, вероятно, проблема в самом модуле. Необходимо обрабатывать исключения, как минимум, ipwhois.exceptions.ASNRegistryError:

Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 341, in lookup
    asn_data = self._parse_fields_dns(response)
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 138, in _parse_fields_dns
    ret['asn_registry'])
ipwhois.exceptions.ASNRegistryError: ASN registry other is not known.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 356, in lookup
    asn_data = self._parse_fields_whois(response
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 189, in _parse_fields_whois
    ret['asn_registry'])
ipwhois.exceptions.ASNRegistryError: ASN registry other is not known.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 272, in _parse_fields_http
    org_map[n['orgRef']['@handle'].upper()]
KeyError: 'IANA'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 376, in lookup
    extra_org_map)
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 279, in _parse_fields_http
    raise ASNRegistryError('ASN registry lookup failed.')
ipwhois.exceptions.ASNRegistryError: ASN registry lookup failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./blockcheck.py", line 1026, in <module>
    main()
  File "./blockcheck.py", line 825, in main
    asn6 = get_ispinfo(ipv6_addr)
  File "./blockcheck.py", line 801, in get_ispinfo
    ispinfo = rdap_response.lookup_rdap(depth=1)
  File "/usr/lib/python3.5/site-packages/ipwhois/ipwhois.py", line 269, in lookup_rdap
    extra_org_map=extra_org_map
  File "/usr/lib/python3.5/site-packages/ipwhois/asn.py", line 380, in lookup
    raise ASNRegistryError('ASN registry lookup failed.')
ipwhois.exceptions.ASNRegistryError: ASN registry lookup failed.
nshopik commented 7 years ago

Не разу не сработало, даже если делать несколько попыток? Интересно глянуть на айпишник, на котором оно свалилось. А есть возможность поделиться айпишником на котором оно падает? Если оно прям наверняка падает я бы багрепорт написал апстриму, ну и код подправлю.

ValdikSS commented 7 years ago

Любой адрес 6to4: 2002::

nshopik commented 7 years ago

Я пока не могу вопроизвести, потому что из моей сети 2002:: не работает толком

ValdikSS commented 7 years ago
rdap_response = IPWhois("2002::")
ispinfo = rdap_response.lookup_rdap(depth=1)
nshopik commented 7 years ago

Попробуем вот так тогда

ValdikSS commented 7 years ago

Мусор!

ValdikSS commented 7 years ago

Нет, так нельзя. Нельзя перехватывать все возможные исключения, нужно хотя бы обрабатывать (KeyboardInterrupt, SystemExit) отдельно и делать raise. Но лучше обрабатывать только (ipwhois.exceptions.ASNRegistryError, ipwhois.exceptions.ASNLookupError, ipwhois.exceptions.ASNParseError, ipwhois.exceptions.ASNOriginLookupError) http://ipwhois.readthedocs.io/en/latest/ipwhois.html#ipwhois.exceptions.ASNLookupError

ValdikSS commented 7 years ago

Эх вы, хотя бы код запустили.

ValdikSS commented 7 years ago

Немного поменял код и закоммитил: commit 28c7b12 Спасибо!