Closed nshopik closed 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.
Не разу не сработало, даже если делать несколько попыток? Интересно глянуть на айпишник, на котором оно свалилось. А есть возможность поделиться айпишником на котором оно падает? Если оно прям наверняка падает я бы багрепорт написал апстриму, ну и код подправлю.
Любой адрес 6to4: 2002::
Я пока не могу вопроизвести, потому что из моей сети 2002:: не работает толком
rdap_response = IPWhois("2002::")
ispinfo = rdap_response.lookup_rdap(depth=1)
Попробуем вот так тогда
Мусор!
Нет, так нельзя. Нельзя перехватывать все возможные исключения, нужно хотя бы обрабатывать (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
Эх вы, хотя бы код запустили.
Немного поменял код и закоммитил: commit 28c7b12 Спасибо!
Забыл проверку на
--force-ipv6
, обновлю