mirror of
https://github.com/ValdikSS/blockcheck.git
synced 2026-09-12 19:50:05 +05:00
ASN check
Signed-off-by: ValdikSS <iam@valdikss.org.ru>
This commit is contained in:
parent
fb88cfb4e8
commit
28c7b12762
@ -12,6 +12,7 @@ import os.path
|
||||
import dns.resolver
|
||||
import dns.exception
|
||||
import ipaddress
|
||||
import ipwhois
|
||||
|
||||
'''
|
||||
|
||||
@ -803,6 +804,18 @@ def check_ipv6_availability():
|
||||
print(": IPv6 недоступен.")
|
||||
return False
|
||||
|
||||
def get_ispinfo(ipaddr):
|
||||
try:
|
||||
rdap_response = ipwhois.IPWhois(ipaddr)
|
||||
ispinfo = rdap_response.lookup_rdap(depth=1)
|
||||
return ispinfo['asn']
|
||||
except (ipwhois.exceptions.ASNRegistryError,
|
||||
ipwhois.exceptions.ASNLookupError,
|
||||
ipwhois.exceptions.ASNParseError,
|
||||
ipwhois.exceptions.HTTPLookupError,
|
||||
ipwhois.exceptions.HTTPRateLimitError):
|
||||
return False
|
||||
|
||||
def main():
|
||||
ipv6_addr = None
|
||||
global ipv6_available
|
||||
@ -823,6 +836,12 @@ def main():
|
||||
if ip_isp:
|
||||
if ipv6_available:
|
||||
print("IP: {}, IPv6: {}, провайдер: {}".format(_mask_ip(ip_isp[0]), _mask_ip(ipv6_addr), ip_isp[1]))
|
||||
if not force_ipv6:
|
||||
asn4 = get_ispinfo(ip_isp[0])
|
||||
asn6 = get_ispinfo(ipv6_addr)
|
||||
if asn4 and asn6 and asn4 != asn6:
|
||||
ipv6_available = False
|
||||
print("Вероятно, у вас IPv6-туннель. Проверка IPv6 отключена.")
|
||||
else:
|
||||
print("IP: {}, провайдер: {}".format(_mask_ip(ip_isp[0]), ip_isp[1]))
|
||||
print()
|
||||
|
||||
@ -1 +1,2 @@
|
||||
dnspython
|
||||
ipwhois
|
||||
|
||||
Loading…
Reference in New Issue
Block a user