思路:請求一個特定網(wǎng)站损话,網(wǎng)站返回內(nèi)容包含公網(wǎng)ip。
使用python的requests庫請求http://txt.go.sohu.com/ip/soip,響應(yīng)中包含公網(wǎng)ip敞嗡,re匹配出公網(wǎng)ip,輸出就可以了航背。當(dāng)然你也可以讓程序一直執(zhí)行喉悴,例如每隔60s或更久,或者把獲得的公網(wǎng)ip保存在本地玖媚』啵或者當(dāng)公網(wǎng)ip發(fā)生變化時,提醒自己今魔。
import requests
import time
import re
def getip():
? ? ? ? ip_html = requests.get("http://txt.go.sohu.com/ip/soip")
#返回公網(wǎng)ip的網(wǎng)站
? ? ? ? cur_public_ip = re.findall(r'\d+.\d+.\d+.\d+',ip_html.text)
#從響應(yīng)中匹配公網(wǎng)ip
? ? ? ? #return cur_public_ip
? ? ? ? cip = cur_public_ip[0]
? ? ? ? print(cip)
#輸出公網(wǎng)ip勺像,可不要
? ? ? ? save_txt(cip)
#定義保存ip函數(shù)
#定義休眠函數(shù),每隔60秒請求一次
def sleep_func():
? ? ? ? time.sleep(60)
? ? ? ? #休眠60秒
#保存到本地错森,當(dāng)前目錄
def save_txt(ip):
? ? ? ? with open('ip.txt','a') as f:
? ? ? ? ? ? ? ? t = time.asctime(time.localtime(time.time()))
? ? ? ? ? ? ? ? f.write(t)
? ? ? ? ? ? ? ? f.write('\t')
? ? ? ? ? ? ? ? f.write(ip)
? ? ? ? ? ? ? ? f.write('\n')
if __name__ == '__main__':
? ? ? ? while True:
? ? ? ? ? ? ? ? getip()
? ? ? ? ? ? ? ? sleep_func()