diff --git a/channels/streamingcommunity.py b/channels/streamingcommunity.py index 50aabb9d..3fc0dd8a 100644 --- a/channels/streamingcommunity.py +++ b/channels/streamingcommunity.py @@ -252,7 +252,7 @@ def play(item): return [] # Calculate Token - client_ip = httptools.downloadpage('https://api.ipify.org/').data + client_ip = httptools.downloadpage('https://api64.ipify.org/').data expires = int(time() + 172800) token = b64encode(md5('{}{} Yc8U6r8KjAKAepEA'.format(expires, client_ip).encode('utf-8')).digest()).decode('utf-8').replace('=', '').replace('+', '-').replace('/', '_') diff --git a/lib/doh.py b/lib/doh.py index feb5e3aa..d760dfda 100644 --- a/lib/doh.py +++ b/lib/doh.py @@ -24,7 +24,10 @@ else: _urlopen = urllib2.urlopen _Request = urllib2.Request -def query(name, type='A', server=DOH_SERVER, path="/dns-query", fallback=True): +ipv6 = ':' in _urlopen('https://api64.ipify.org/').read().decode() + + +def query(name, type='AAAA' if ipv6 else 'A', server=DOH_SERVER, path="/dns-query", fallback=True): """ Returns domain name query results retrieved by using DNS over HTTPS protocol # Reference: https://developers.cloudflare.com/1.1.1.1/dns-over-https/json-format/