use cloudflare trace & force it to be ipv4/ipv6
This commit is contained in:
parent
18ad6c6bc4
commit
344b056a6d
@ -1,3 +1,5 @@
|
||||
import socket
|
||||
import requests.packages.urllib3.util.connection as urllib3_cn
|
||||
import requests, json, sys, os
|
||||
import time
|
||||
|
||||
@ -10,15 +12,40 @@ if(version < 3.5):
|
||||
with open(PATH + "config.json") as config_file:
|
||||
config = json.loads(config_file.read())
|
||||
|
||||
def allowed_gai_family6():
|
||||
family = socket.AF_INET
|
||||
if urllib3_cn.HAS_IPV6:
|
||||
family = socket.AF_INET6 # force ipv6 only if it is available
|
||||
return family
|
||||
|
||||
def allowed_gai_family4():
|
||||
family = socket.AF_INET
|
||||
return family
|
||||
|
||||
def getIPs():
|
||||
a = ""
|
||||
aaaa = ""
|
||||
try:
|
||||
a = requests.get("https://dns.timknowsbest.com/api/ipv4").text
|
||||
except Exception:
|
||||
urllib3_cn.allowed_gai_family = allowed_gai_family4
|
||||
a = requests.get("https://www.cloudflare.com/cdn-cgi/trace").text.split("\n")
|
||||
a.pop()
|
||||
ajson = json.loads("{}")
|
||||
for value in a:
|
||||
value = value.split("=")
|
||||
ajson[value[0]] = value[1]
|
||||
a = ajson['ip']
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print("Warning: IPv4 not detected.")
|
||||
try:
|
||||
aaaa = requests.get("https://api6.ipify.org?format=json").json().get("ip")
|
||||
urllib3_cn.allowed_gai_family = allowed_gai_family6
|
||||
aaaa = requests.get("https://www.cloudflare.com/cdn-cgi/trace").text.split("\n")
|
||||
aaaa.pop()
|
||||
aaaajson = json.loads("{}")
|
||||
for value in aaaa:
|
||||
value = value.split("=")
|
||||
aaaajson[value[0]] = value[1]
|
||||
aaaa = aaaajson['ip']
|
||||
except Exception:
|
||||
print("Warning: IPv6 not detected.")
|
||||
ips = []
|
||||
|
||||
Reference in New Issue
Block a user