Browse Source

更换接口

liuyuqi-dellpc 3 years ago
parent
commit
a15acf9a7b
4 changed files with 59 additions and 42 deletions
  1. 2 1
      .gitignore
  2. 31 32
      hosts
  3. 21 4
      tools/get_ip_utils.py
  4. 5 5
      tools/main.py

+ 2 - 1
.gitignore

@@ -1,2 +1,3 @@
-/tools/__pycache__/*.pyc
+*.pyc
 /.vscode
+/.idea

+ 31 - 32
hosts

@@ -1,32 +1,31 @@
-
-#*********************github 2020-06-08 update********************

-74.86.12.172	github.global.ssl.fastly.net
-185.199.111.153	assets-cdn.github.com
-185.199.110.153	documentcloud.github.com
-8.7.198.45	gist.github.com
-151.101.108.133	gist.githubusercontent.com
-185.199.109.154	github.githubassets.com
-185.199.111.154	help.github.com
-54.251.140.56	nodeload.github.com
-151.101.108.133	raw.github.com
-52.205.36.92	status.github.com
-140.82.114.17	training.github.com
-151.101.108.133	avatars0.githubusercontent.com
-151.101.108.133	avatars1.githubusercontent.com
-151.101.108.133	avatars2.githubusercontent.com
-151.101.108.133	avatars3.githubusercontent.com
-151.101.228.133	avatars4.githubusercontent.com
-151.101.108.133	avatars5.githubusercontent.com
-151.101.108.133	avatars6.githubusercontent.com
-151.101.108.133	avatars7.githubusercontent.com
-151.101.108.133	avatars8.githubusercontent.com
-13.250.162.133	codeload.github.com
-151.101.228.133	camo.githubusercontent.com
-151.101.228.133	raw.githubusercontent.com
-151.101.228.133	cloud.githubusercontent.com
-151.101.228.133	user-images.githubusercontent.com
-185.199.108.153	customer-stories-feed.github.com
-185.199.109.153	pages.github.com
-13.250.94.254	api.github.com
-140.82.113.26	live.github.com
-52.74.223.119	github.com
+#*********************github 2020-06-15 update********************
+151.101.129.194	github.global.ssl.fastly.net
+185.199.108.153	assets-cdn.github.com
+185.199.111.153	documentcloud.github.com
+13.250.177.223	gist.github.com
+151.101.64.133	gist.githubusercontent.com
+185.199.111.154	github.githubassets.com
+185.199.108.154	help.github.com
+13.229.189.0	nodeload.github.com
+151.101.128.133	raw.github.com
+52.87.114.63	status.github.com
+140.82.114.18	training.github.com
+151.101.0.133	avatars0.githubusercontent.com
+151.101.0.133	avatars1.githubusercontent.com
+151.101.64.133	avatars2.githubusercontent.com
+151.101.64.133	avatars3.githubusercontent.com
+151.101.0.133	avatars4.githubusercontent.com
+151.101.128.133	avatars5.githubusercontent.com
+151.101.64.133	avatars6.githubusercontent.com
+151.101.128.133	avatars7.githubusercontent.com
+151.101.64.133	avatars8.githubusercontent.com
+54.251.140.56	codeload.github.com
+151.101.128.133	camo.githubusercontent.com
+151.101.192.133	raw.githubusercontent.com
+151.101.64.133	cloud.githubusercontent.com
+151.101.64.133	user-images.githubusercontent.com
+185.199.111.153	customer-stories-feed.github.com
+185.199.108.153	pages.github.com
+13.250.94.254	api.github.com
+140.82.113.25	live.github.com
+52.74.223.119	github.com

+ 21 - 4
tools/get_ip_utils.py

@@ -1,6 +1,6 @@
 import requests
 from bs4 import BeautifulSoup
-import re
+import re,json
 
 
 def getIpFromIpaddress(site):
@@ -9,7 +9,7 @@ def getIpFromIpaddress(site):
     url = "https://ipaddress.com/search/" + site
     trueip = None
     try:
-        res = requests.get(url, headers=headers, timeout=2)
+        res = requests.get(url, headers=headers, timeout=5)
         soup = BeautifulSoup(res.text, 'html.parser')
         ip = re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b", res.text)
         result = soup.find_all('div', class_="comma-separated")
@@ -27,7 +27,7 @@ def getIpFromChinaz(site):
     url = "http://ip.tool.chinaz.com/" + site
     trueip = None
     try:
-        res = requests.get(url, headers=headers)
+        res = requests.get(url, headers=headers,timeout=5)
         soup = BeautifulSoup(res.text, 'html.parser')
         result = soup.find_all('span', class_="Whwtdhalf w15-0")
         for c in result:
@@ -49,7 +49,7 @@ def getIpFromWhatismyipaddress(site):
     }
     trueip = None
     try:
-        res = requests.post(url, headers=headers, data=data)
+        res = requests.post(url, headers=headers, data=data,timeout=5)
         soup = BeautifulSoup(res.text, 'html.parser')
         result = soup.find_all('span', class_="Whwtdhalf w15-0")
         for c in result:
@@ -59,3 +59,20 @@ def getIpFromWhatismyipaddress(site):
     except Exception as e:
         print("查询" + site + " 时出现错误: " + str(e))
     return trueip
+
+def getIpFromipapi(site):
+    '''
+    return trueip: None or ip
+    '''
+    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebkit/737.36(KHTML, like Gecke) Chrome/52.0.2743.82 Safari/537.36',
+               'Host': 'ip-api.com'}
+    url = "http://ip-api.com/json/%s?lang=zh-CN" % (site)
+    trueip = None
+    try:
+        res = requests.get(url, headers=headers,timeout=5)
+        res=json.loads(res.text)
+        if(res["status"]=="success"):
+            trueip=res["query"]
+    except Exception as e:
+        print("查询" + site + " 时出现错误: " + str(e))
+    return trueip

+ 5 - 5
tools/main.py

@@ -68,7 +68,7 @@ def dropDuplication(line):
 def updateHost():
     today = datetime.date.today()
     for site in sites:
-        trueip=get_ip_utils.getIpFromChinaz(site)
+        trueip=get_ip_utils.getIpFromipapi(site)
         if trueip != None:
             addr2ip[site] = trueip
             print(site + "\t" + trueip)
@@ -79,11 +79,11 @@ def updateHost():
                 if dropDuplication(line) == False:
                     f2.write(line)
             f2.write("#*********************github " +
-                     str(today) + " update********************\r\n")
+                     str(today) + " update********************\n")
             for key in addr2ip:
                 f2.write(addr2ip[key] + "\t" + key + "\n")
-
-    os.remove("./temphost")
+    os.remove(hostLocation)
+    os.rename("temphost",hostLocation)
 
 if __name__ == "__main__":
-        updateHost()
+    updateHost()