免费找一个获取当前IP和地址的接口
之前做项目需要一个获取当前IP的接口,网上的基本上都需要注册,所以就用之前写的来处理了一下,但是发现之前写的除了bug,于是就把代码检查了一下,发现https的网址貌似做了放爬虫,然后想着没办法,就强行把https换成了http,喵~居然可以,把代码放上来给大家看看。
源blog网址 https://nekokami.cc
#!/usr/bin/python3
#coding:utf-8
from xpinyin import Pinyin
import requests
import random
import re
http_url1="http://www.ip138.com"
headers={'User-Agent': ''}
user_agent_list = ["Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36",
"Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/61.0",
"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
"Mozilla/5.0 (Macintosh; U; PPC Mac OS X 10.5; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15"
]
headers['User-Agent'] = random.choice(user_agent_list)
re1 = "src=\"(.*?)\" rel=\"nofollow\" width=\"100%\""
re2 = "来自:(.*?)\ (.*?)\r\n"
re3 = "\[(.*?)\]"
def getLocation():
pin = Pinyin()
t1 = requests.get(http_url1, headers=headers).text
http_url2=re.compile(re1).findall(t1)[0]
http_url2 = http_url2.replace("https","http")
t2 = requests.get(http_url2).text
t3 = re.compile(re2).findall(t2)[0]
ip = re.findall(re3,t2)[0]
# t3 = t3.replace('省',',').replace('市','').split(',')
# return pin.get_pinyin(t3[0]).replace('-',''),pin.get_pinyin(t3[1]).replace('-','').replace(' ',''),ip
return ip,t3[0],t3[1]
L=getLocation()
print(L)