This commit is contained in:
RainSun 2020-02-14 09:16:07 +08:00
commit 534b13b42b
25 changed files with 682 additions and 0 deletions

19
ReadMe.md Normal file
View File

@ -0,0 +1,19 @@
# api
## 错误代码一览
* 200成功
* access_token相关
* 100access_token不存在
* 101access_token获取失败
* 102access_token覆写失败
* 103access_token插入失败
* /keyword/insert
* 300校验失败
* 301keyword插入失败
* /keyword/del
* 400校验失败
* 401数据库操作失败
* /keyword/get
* 401keyword表获取失败
* /wxpy/acceptmsg
* 500校验失败

53
api.js Normal file
View File

@ -0,0 +1,53 @@
// fetch.js
import axios from 'axios'
export const api = axios.create({
baseURL: 'https://api.powerrain.cn/',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json'
},
timeout: 10 * 1000
})
//设置拦截器
api.interceptors.response.use(
(response) => {
// console.log('拦截器:请求成功', response)
return response
}, (error) => {
// console.log('拦截器:发生错误', error.response)
return Promise.reject(error)
}
)
// api.js
// 签名算法
// cnpm install crypto-js -s
var CryptoJS = require("crypto-js");
export function getKeywordLists() {
return api.get('/keyword/get')
}
// item 就是去掉row的关键词json
export function addKeywords(item) {
let data = { item }
let sign = CryptoJS.MD5(JSON.stringify(data).replace(/\"/g,"'")).toString().toUpperCase();
data.sign = sign
let params = new URLSearchParams();
params.append('data', JSON.stringify(data));
return api.post('/keyword/insert',params)
}
// index 就是关键词的index
export function delKeywords(index) {
let data = { index }
let sign = CryptoJS.MD5(JSON.stringify(data).replace(/\"/g,"'")).toString().toUpperCase();
data.sign = sign
let params = new URLSearchParams();
params.append('data', JSON.stringify(data));
return api.post('/keyword/del',params)
}

87
api.py Normal file
View File

@ -0,0 +1,87 @@
# 将lib里边的文件加到路由中
import sys
sys.path.append('./lib')
from flask import Flask, escape, url_for, request, render_template, redirect, abort, send_from_directory, Response
from allFunction import manageGet, managePost, manageInsertKeyword, manageDelKeyword, manageGetKeyword, manageMaterial
from flask_apscheduler import APScheduler
from wxRequest import requestsAccessToken
scheduler = APScheduler()
# Response XML自动格式设置
class MyResponse(Response):
def __init__(self, response, **kwargs):
if 'mimetype' not in kwargs and 'contenttype' not in kwargs:
if response.startswith('<?xml'):
kwargs['mimetype'] = 'application/xml'
return super(MyResponse, self).__init__(response, **kwargs)
# 创建子类覆写Response
class MyFlask(Flask):
response_class = MyResponse
# 创建app创建定时函数
def create_app():
app = MyFlask(__name__)
app.config.update(
{"SCHEDULER_API_ENABLED": True,
"JOBS": [{"id": "requestsAccessToken", # 任务ID
"func": "wxRequest:requestsAccessToken", # 任务位置
"trigger": "interval", # 触发器
"hours": 1 # 时间间隔
}
]}
)
scheduler.init_app(app)
scheduler.start()
requestsAccessToken()
return app
app = create_app()
if __name__ == '__main__':
app.run()
# 测试用根路由
@app.route('/')
def sayHello():
return 'Hello world'
# 用于接受微信发来的消息
@app.route('/wxpy/acceptmsg', methods=["POST", "GET"])
def acceptMsg():
if request.method == 'GET':
# 请求方法为get进行sign验证
return manageGet(request)
elif request.method == "POST":
# 请求方法为post为用户发的信息
return managePost(request)
print(request.form.to_dict())
print(request.data)
return 'success'
else:
print('sss')
return 'success'
# 获取图文信息
@app.route('/wxpy/material', methods=["POST"])
def material():
res = manageMaterial(request)
return res
# 新增关键词
@app.route('/keyword/insert', methods=["POST"])
def insertKeyword():
res = manageInsertKeyword(request)
return res
# 删除关键词
@app.route('/keyword/del', methods=["POST"])
def delKeyword():
res = manageDelKeyword(request)
return res
# 获取关键词
@app.route('/keyword/get', methods=["GET"])
def getKeyword():
res = manageGetKeyword(request)
return res

20
error.log Normal file
View File

@ -0,0 +1,20 @@
[2020-02-12 12:06:10 +0800] [5081] [INFO] Starting gunicorn 20.0.4
[2020-02-12 12:06:10 +0800] [5081] [INFO] Listening at: http://127.0.0.1:5004 (5081)
[2020-02-12 12:06:10 +0800] [5081] [INFO] Using worker: sync
[2020-02-12 12:06:10 +0800] [5083] [INFO] Booting worker with pid: 5083
[2020-02-12 12:06:10 +0800] [5084] [INFO] Booting worker with pid: 5084
[2020-02-12 12:06:10 +0800] [5085] [INFO] Booting worker with pid: 5085
[2020-02-12 12:06:11 +0800] [5086] [INFO] Booting worker with pid: 5086
[2020-02-12 14:06:18 +0800] [5081] [INFO] Handling signal: term
[2020-02-12 14:06:18 +0800] [5083] [INFO] Worker exiting (pid: 5083)
[2020-02-12 14:06:18 +0800] [5084] [INFO] Worker exiting (pid: 5084)
[2020-02-12 14:06:18 +0800] [5085] [INFO] Worker exiting (pid: 5085)
[2020-02-12 14:06:18 +0800] [5086] [INFO] Worker exiting (pid: 5086)
[2020-02-12 14:06:18 +0800] [5081] [INFO] Shutting down: Master
[2020-02-12 14:18:41 +0800] [5993] [INFO] Starting gunicorn 20.0.4
[2020-02-12 14:18:41 +0800] [5993] [INFO] Listening at: http://127.0.0.1:5004 (5993)
[2020-02-12 14:18:41 +0800] [5993] [INFO] Using worker: sync
[2020-02-12 14:18:41 +0800] [5995] [INFO] Booting worker with pid: 5995
[2020-02-12 14:18:41 +0800] [5996] [INFO] Booting worker with pid: 5996
[2020-02-12 14:18:41 +0800] [5997] [INFO] Booting worker with pid: 5997
[2020-02-12 14:18:41 +0800] [5998] [INFO] Booting worker with pid: 5998

13
gunicorn.conf Normal file
View File

@ -0,0 +1,13 @@
# 并行工作线程数
workers = 1
# 监听内网端口5000【按需要更改】
bind = '127.0.0.1:5004'
# 设置守护进程【关闭连接时,程序仍在运行】
daemon = True
# 设置超时时间120s默认为30s。按自己的需求进行设置
timeout = 120
# 设置访问日志和错误信息日志路径
accesslog = './logs/acess.log'
errorlog = './logs/error.log'
#自动重启
autostart = True

154
lib/allFunction.py Normal file
View File

@ -0,0 +1,154 @@
# 引入哈希加密的库
import hashlib
# 引入XML信息处理
import receive
# 引入回复XML信息创建
import reply
# 引入md5校验
from hashlib import md5
# 引入数据库操作函数
from db import insertKeyword, delKeyword, getAllKeyword
# 引入json
import json
# 引入获取微信图文信息
from wxRequest import batchget_material
# 主处理逻辑函数-----------------------------------------------------------
# 处理acceptMsg方法为get的情况
def manageGet(request):
try:
# 获取参数字典
data = request.args.to_dict()
# 无参数拦截器
if len(data) == 0:
return ""
# 定义所有参数
signature = data['signature']
timestamp = data['timestamp']
nonce = data['nonce']
echostr = data['echostr']
token = "160594753" # 请按照公众平台官网\基本配置中信息填写
# 拼装成列表
list = [token, timestamp, nonce]
list.sort()
# 初始化sha1
sha1 = hashlib.sha1()
# 遍历列表更sha1
for item in list:
manageSha1(item, sha1)
hashcode = sha1.hexdigest()
# 打印自己签名和微信给的签名
print("handle/GET func: hashcode, signature: ", hashcode, signature)
# 一样的话说明签名成功返回echostr
if hashcode == signature:
return echostr
else:
return ""
except Exception as Argument:
# 错误处理
return "error"
# 处理acceptMsg方法为post的情况
def managePost(request):
try:
# 获取XML文本
webData = request.data
# 控制台打印XML文本
# print("Handle Post webdata is ", webData)
# 处理XML文本
recMsg = receive.getXMLData(webData)
# 判断信息类型
if isinstance(recMsg, receive.Msg):
toUser = recMsg.FromUserName
fromUser = recMsg.ToUserName
if recMsg.MsgType == 'text':
# 文本类型
content = "自动回复功能开发测试中,敬请期待"
# 获取返回信息
replyMsg = reply.TextMsg(toUser, fromUser, content)
return replyMsg.send()
if recMsg.MsgType == 'image':
# 图片类型
mediaId = recMsg.MediaId
# 获取返回信息
replyMsg = reply.ImageMsg(toUser, fromUser, mediaId)
return replyMsg.send()
else:
return reply.Msg().send()
else:
print("暂且不处理")
return reply.Msg().send()
except Exception as Argment:
print(Argment)
return 'error'
# 处理图文信息获取
def manageMaterial(request):
# json化应该能当dict用
try:
data_cache = json.loads(request.form['data'])
except Exception as e:
return {'errcode': 500, 'errmsg': '校验失败'}
# MD5校验
checked = checkData(data_cache)
data_cache.pop('sign')
if checked:
return batchget_material(data_cache)
else:
return {'errcode': 500, 'errmsg': '校验失败'}
# 处理新增关键词
def manageInsertKeyword(request):
# json化应该能当dict用
try:
data_cache = json.loads(request.form['data'])
except Exception as e:
return {'errcode': 300, 'errmsg': '校验失败'}
# MD5校验
checked = checkData(data_cache)
data_cache.pop('sign')
if checked:
return insertKeyword(data_cache['item'])
else:
return {'errcode': 300, 'errmsg': '校验失败'}
# 处理删除关键词
def manageDelKeyword(request):
# json化应该能当dict用
try:
data_cache = json.loads(request.form['data'])
except Exception as e:
return {'errcode': 300, 'errmsg': '校验失败'}
# MD5校验
checked = checkData(data_cache)
data_cache.pop('sign')
if checked:
return delKeyword(data_cache['id'])
else:
return {'errcode': 300, 'errmsg': '校验失败'}
# 处理获取全部关键词
def manageGetKeyword(request):
return getAllKeyword()
# 工具函数---------------------------------------------------------------
# 更新sha1
def manageSha1(arg, sha1):
print(arg)
sha1.update(arg.encode('utf-8'))
# MD5 校验
def checkData(data):
d = data.copy()
try:
d.pop('sign')
except KeyError:
pass
d = str(d)
d = d.replace(' ', '')
md = md5()
md.update(d.encode('utf-8'))
r = md.hexdigest().upper()
return r == data['sign']

83
lib/db.py Normal file
View File

@ -0,0 +1,83 @@
from pymongo import MongoClient
from bson import ObjectId, json_util
# 主环境 (生产环境为production开发环境为development)
setting = 'development'
# 获取数据集
def col(arg):
conn = MongoClient('mongodb://apiwx:srVgEGwTf4@localhost:12236/apiwx')
if setting == 'development':
arg += '_test'
if arg == 'keyword':
return conn.apiwx.keyword
elif arg == 'access_token':
return conn.apiwx.access_token
elif arg == 'keyword_test':
return conn.apiwx.keyword_test
elif arg == 'access_token_test':
return conn.apiwx.access_token_test
else:
return False
# 获取access_token
def getAccessToken():
try:
access_token = col('access_token').find_one({"name": 'access_token'},{'content': 1})
if access_token:
access_token = access_token['content']
return {'errcode': 200, 'access_token': access_token, 'errmsg': 'ok'}
else:
return {'errcode': 100, 'errmsg': 'access_token不存在'}
except Exception as e:
# id不合法
return {'errcode': 101, 'errmsg': 'access_token获取失败', 'errdetail': e}
# 设置access_token
def setAccessToken(access_token):
try:
res = col('access_token').update({"name": 'access_token'},
{'$set': {'content': access_token}})
# 判断有没有access_token
if(res['updatedExisting']):
return {'errcode': 200, 'errmsg': 'access_token覆写成功'}
else:
return insertAccessToken(access_token)
except Exception as e:
return {'errcode': 102, 'errmsg': 'access_token覆写失败','errdetail': e}
# 插入access_token
def insertAccessToken(access_token):
try:
col('access_token').insert_one({'name': 'access_token', 'content': access_token})
except Exception as e:
# 插入失败
return {'errcode': 103, 'errmsg': 'access_token插入失败','errdetail': e}
return {'errcode': 200, 'errmsg': 'access_token插入成功'}
# 插入新关键词
def insertKeyword(keyword):
try:
col('keyword').insert_one(keyword)
except Exception as e:
# 插入失败
return {'errcode': 301, 'errmsg': 'keyword插入失败'}
return {'errcode': 200, 'errmsg': 'keyword插入成功'}
# 删除特定关键词
def delKeyword(id):
try:
col('keyword').remove({"_id" : ObjectId(id)})
except Exception as e:
return {'errcode': 401, 'errmsg': '数据库操作失败id不合法'}
return {'errcode': 200, 'errmsg': 'ok'}
# 获取整个表
def getAllKeyword():
arr = []
try:
for i in col('keyword').find():
arr.append(i)
except Exception as e:
return {'errcode': 401, 'errmsg': 'keyword表获取失败'}
return {'errcode': 200, 'arr': json_util.dumps(arr), 'errmsg': 'ok'}

32
lib/mail.py Normal file
View File

@ -0,0 +1,32 @@
# coding=utf-8
import smtplib
from email.mime.text import MIMEText
# 发送纯文本格式的邮件
def sendMail(title, content, mailto_list):
msg = MIMEText(content, 'plain', 'utf-8')
#发送邮箱地址
sender = '1144131090@qq.com'
#邮箱授权码,非登陆密码
password = 'gmzfcesmbgqhgfjb'
#收件箱地址
#receiver = '19xxxxxxx9@qq.com'
# mailto_list = ['1144131090@qq.com','nayiyewosile@qq.com'] #群发邮箱地址
#smtp服务器
smtp_server = 'smtp.qq.com'
#发送邮箱地址
msg['From'] = sender
#收件箱地址
#msg['To'] = receiver
msg['To'] =';'.join(mailto_list) #发送多人邮件写法
#主题
msg['Subject'] = title
server = smtplib.SMTP(smtp_server,25) # SMTP协议默认端口是25
server.login(sender,password) #ogin()方法用来登录SMTP服务器
server.set_debuglevel(1) #打印出和SMTP服务器交互的所有信息。
server.sendmail(sender,mailto_list,msg.as_string()) #msg.as_string()把MIMEText对象变成str server.quit()
# 第一个参数为发送者,第二个参数为接收者,可以添加多个例如:['hello@163.com','xxx@qq.com',]# 第三个参数为发送的内容
server.quit()

38
lib/receive.py Normal file
View File

@ -0,0 +1,38 @@
# 引入XML字符串处理函数
try:
import xml.etree.cElementTree as ET
except ImportError:
import xml.etree.ElementTree as ET
# 获取XML内容
def getXMLData(data):
if len(data) == 0:
return None
xmlData = ET.fromstring(data)
msg_type = xmlData.find('MsgType').text
if msg_type == 'text':
return TextMsg(xmlData)
elif msg_type == 'image':
return ImageMsg(xmlData)
# XML信息主类
class Msg(object):
def __init__(self, xmlData):
self.ToUserName = xmlData.find('ToUserName').text
self.FromUserName = xmlData.find('FromUserName').text
self.CreateTime = xmlData.find('CreateTime').text
self.MsgType = xmlData.find('MsgType').text
self.MsgId = xmlData.find('MsgId').text
# XML信息文本类
class TextMsg(Msg):
def __init__(self, xmlData):
Msg.__init__(self, xmlData)
self.Content = xmlData.find('Content').text.encode("utf-8")
# XML信息图片类
class ImageMsg(Msg):
def __init__(self, xmlData):
Msg.__init__(self, xmlData)
self.PicUrl = xmlData.find('PicUrl').text
self.MediaId = xmlData.find('MediaId').text

51
lib/reply.py Normal file
View File

@ -0,0 +1,51 @@
# 引入时间
import time
# 定义消息主类
class Msg(object):
def __init__(self):
pass
def send(self):
return "success"
# 定义文本信息回复类
class TextMsg(Msg):
def __init__(self, toUserName, fromUserName, content):
self.__dict = dict()
self.__dict['ToUserName'] = toUserName
self.__dict['FromUserName'] = fromUserName
self.__dict['CreateTime'] = int(time.time())
self.__dict['Content'] = content
def send(self):
XmlForm = """
<xml>
<ToUserName><![CDATA[{ToUserName}]]></ToUserName>
<FromUserName><![CDATA[{FromUserName}]]></FromUserName>
<CreateTime>{CreateTime}</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[{Content}]]></Content>
</xml>
"""
return XmlForm.format(**self.__dict)
# 定义图片消息回复类
class ImageMsg(Msg):
def __init__(self, toUserName, fromUserName, mediaId):
self.__dict = dict()
self.__dict['ToUserName'] = toUserName
self.__dict['FromUserName'] = fromUserName
self.__dict['CreateTime'] = int(time.time())
self.__dict['MediaId'] = mediaId
def send(self):
XmlForm = """
<xml>
<ToUserName><![CDATA[{ToUserName}]]></ToUserName>
<FromUserName><![CDATA[{FromUserName}]]></FromUserName>
<CreateTime>{CreateTime}</CreateTime>
<MsgType><![CDATA[image]]></MsgType>
<Image>
<MediaId><![CDATA[{MediaId}]]></MediaId>
</Image>
</xml>
"""
return XmlForm.format(**self.__dict)

32
lib/wxRequest.py Normal file
View File

@ -0,0 +1,32 @@
import requests
import json
from db import setAccessToken, getAccessToken
from mail import sendMail
import json
def requestsAccessToken():
url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx2186b63dad75fd21&secret=26a895a874615a7c112d056cc1094a80'
res = requests.get(url=url)
json_response = res.content.decode()
dict_json = json.loads(json_response)
set_res = setAccessToken(dict_json['access_token'])
if set_res['errcode'] != 200:
sendMail('警告!', str(set_res), ['1144131090@qq.com','160594753@qq.com'])
def batchget_material(data):
# 从数据库取出
access_token = getAccessToken()
# 错误拦截
if access_token['errcode'] != 200:
return access_token
# 取出access_token
access_token = access_token['access_token']
# 拼接访问地址
url = 'https://api.weixin.qq.com/cgi-bin/material/batchget_material?access_token=' + access_token
# 发送请求
res = requests.post(url, data=json.dumps(data))
# 返回内容解码
json_response = res.content.decode()
# json化
dict_json = json.loads(json_response)
return {'errcode': 200, 'errmsg': 'ok', 'material': dict_json}

14
logs/api.log Normal file
View File

@ -0,0 +1,14 @@
176.34.159.49 - - [13/Feb/2020:20:59:55 +0800] "GET //.git/objects/64/7895f0149ba6b34925a4194a84e577a781fe0d HTTP/1.1" 301 169 "-" "curl/7.47.0"
182.254.52.17 - - [13/Feb/2020:21:04:06 +0800] "GET http://www.powerrain.cn/undefined HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0"
222.162.198.61 - - [13/Feb/2020:21:04:58 +0800] "GET /undefined HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
106.118.250.72 - - [13/Feb/2020:21:37:47 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
58.251.121.184 - - [13/Feb/2020:21:42:23 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G35 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/750 Core/UIWebView NetType/2G Mem/117"
58.247.204.63 - - [13/Feb/2020:21:43:23 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36 (KHTML, like Gecko) \x09\x09\x09Chrome/55.0.2883.95 Safari/537.36"
222.162.198.61 - - [13/Feb/2020:21:44:15 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
223.166.151.197 - - [13/Feb/2020:21:46:13 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:48:37 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:50:25 +0800] "GET / HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:50:43 +0800] "GET / HTTP/1.1" 301 169 "-" "curl/7.55.1"
106.118.250.72 - - [13/Feb/2020:21:50:47 +0800] "GET / HTTP/1.1" 301 169 "-" "curl/7.55.1"
47.244.8.30 - - [13/Feb/2020:21:52:22 +0800] "GET /phpmyadmin/index.php HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"
182.254.52.17 - - [13/Feb/2020:21:54:12 +0800] "GET http://152.136.99.231/ HTTP/1.1" 301 169 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0"

20
logs/api443.log Normal file
View File

@ -0,0 +1,20 @@
176.34.159.49 - - [13/Feb/2020:20:59:58 +0800] "GET //.git/objects/64/7895f0149ba6b34925a4194a84e577a781fe0d HTTP/1.1" 404 232 "-" "curl/7.47.0"
182.254.52.17 - - [13/Feb/2020:21:04:06 +0800] "GET /undefined HTTP/1.1" 404 232 "http://www.powerrain.cn/undefined" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0"
222.162.198.61 - - [13/Feb/2020:21:04:58 +0800] "GET /undefined HTTP/2.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:04:58 +0800] "GET /favicon.ico HTTP/2.0" 499 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
106.118.250.72 - - [13/Feb/2020:21:37:47 +0800] "GET / HTTP/2.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:37:48 +0800] "GET /favicon.ico HTTP/2.0" 404 232 "https://api.powerrain.cn/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:24 +0800] "GET /keyword/ HTTP/1.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:25 +0800] "GET /keyword/ HTTP/1.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:38:27 +0800] "GET / HTTP/2.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:28 +0800] "GET /keyword/ HTTP/1.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:38:46 +0800] "GET /keyword HTTP/2.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
58.251.121.184 - - [13/Feb/2020:21:42:23 +0800] "GET / HTTP/1.1" 200 11 "http://api.powerrain.cn/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G35 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/750 Core/UIWebView NetType/2G Mem/117"
222.162.198.61 - - [13/Feb/2020:21:44:15 +0800] "GET / HTTP/2.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:44:15 +0800] "GET /favicon.ico HTTP/2.0" 404 232 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
182.92.67.61 - - [13/Feb/2020:21:47:34 +0800] "GET // HTTP/1.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:47:35 +0800] "GET // HTTP/1.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:48:15 +0800] "GET / HTTP/1.0" 200 11 "-" "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"
106.118.250.72 - - [13/Feb/2020:21:48:37 +0800] "GET / HTTP/2.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
106.118.250.72 - - [13/Feb/2020:21:50:26 +0800] "GET / HTTP/2.0" 200 11 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.254.52.17 - - [13/Feb/2020:21:54:12 +0800] "GET / HTTP/1.1" 200 11 "http://152.136.99.231/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:57.0) Gecko/20100101 Firefox/57.0"

0
logs/blog.log Normal file
View File

2
logs/blog443.log Normal file
View File

@ -0,0 +1,2 @@
150.138.138.249 - - [13/Feb/2020:21:38:16 +0800] "GET //.git/objects/5f/1c2cddd2fa158692cc909d15e608d96ad4a7bc HTTP/1.1" 200 5444 "-" "curl/7.47.0"
150.138.138.171 - - [13/Feb/2020:21:59:48 +0800] "GET //.git/objects/de/1f5cc4bb0a593185064162e0ba9d2103e6e39d HTTP/1.1" 200 3263 "-" "curl/7.47.0"

0
logs/coc.log Normal file
View File

37
logs/coc443.log Normal file
View File

@ -0,0 +1,37 @@
150.138.138.91 - - [13/Feb/2020:20:55:33 +0800] "GET /service-worker.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36"
58.216.2.91 - - [13/Feb/2020:20:59:08 +0800] "GET /service-worker.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; V1824A Build/PKQ1.181216.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.91 Mobile Safari/537.36"
58.216.2.54 - - [13/Feb/2020:20:59:11 +0800] "GET /precache-manifest.7923aedeecca1b49729f6a58605fd7c7.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; V1824A Build/PKQ1.181216.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/68.0.3440.91 Mobile Safari/537.36"
150.138.138.180 - - [13/Feb/2020:21:03:01 +0800] "GET /precache-manifest.7923aedeecca1b49729f6a58605fd7c7.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; JSN-AL00 Build/HONORJSN-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.73 - - [13/Feb/2020:21:03:01 +0800] "GET /js/app.489fa278.js?__WB_REVISION__=61373aca1246bdc65435 HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; JSN-AL00 Build/HONORJSN-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.73 - - [13/Feb/2020:21:03:02 +0800] "GET /js/chunk-vendors.671a83a1.js?__WB_REVISION__=852b7df2dab69602115e HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; JSN-AL00 Build/HONORJSN-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.104 - - [13/Feb/2020:21:09:06 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.124 - - [13/Feb/2020:21:09:11 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.146 - - [13/Feb/2020:21:09:20 +0800] "POST /api/laf/detail HTTP/1.1" 200 454 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.249 - - [13/Feb/2020:21:09:27 +0800] "POST /api/laf/detail HTTP/1.1" 200 1083 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.204 - - [13/Feb/2020:21:09:31 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.196 - - [13/Feb/2020:21:09:35 +0800] "POST /api/laf/detail HTTP/1.1" 200 632 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.196 - - [13/Feb/2020:21:09:37 +0800] "POST /api/laf/detail HTTP/1.1" 200 1083 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.204 - - [13/Feb/2020:21:10:17 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Android 9; Mobile; rv:68.0) Gecko/68.0 Firefox/68.0"
150.138.138.91 - - [13/Feb/2020:21:15:57 +0800] "GET /api/laf/get HTTP/1.1" 405 178 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; Android 9; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.126 - - [13/Feb/2020:21:16:00 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; Android 9; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.126 - - [13/Feb/2020:21:16:05 +0800] "POST /api/laf/detail HTTP/1.1" 200 1470 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; Android 9; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.171 - - [13/Feb/2020:21:16:32 +0800] "POST /api/login HTTP/1.1" 200 86 "https://coc.powerrain.cn/login" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.208 - - [13/Feb/2020:21:16:47 +0800] "POST /api/login HTTP/1.1" 200 86 "https://coc.powerrain.cn/login" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.169 - - [13/Feb/2020:21:16:54 +0800] "POST /api/login HTTP/1.1" 200 25588 "https://coc.powerrain.cn/login" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.180 - - [13/Feb/2020:21:17:33 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.163 - - [13/Feb/2020:21:18:08 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.136 - - [13/Feb/2020:21:18:20 +0800] "POST /api/laf/detail HTTP/1.1" 200 632 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.70 - - [13/Feb/2020:21:18:24 +0800] "POST /api/laf/detail HTTP/1.1" 200 1470 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; Android 9; BLA-AL00 Build/HUAWEIBLA-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.131 - - [13/Feb/2020:21:19:04 +0800] "POST /api/login HTTP/1.1" 200 28521 "https://coc.powerrain.cn/login" "Mozilla/5.0 (Linux; Android 9; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.226 - - [13/Feb/2020:21:19:06 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; Android 9; EML-AL00 Build/HUAWEIEML-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.91 - - [13/Feb/2020:21:35:28 +0800] "GET /service-worker.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36"
150.138.138.180 - - [13/Feb/2020:21:35:29 +0800] "GET /precache-manifest.7923aedeecca1b49729f6a58605fd7c7.js HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36"
150.138.138.73 - - [13/Feb/2020:21:35:31 +0800] "GET /js/app.489fa278.js?__WB_REVISION__=61373aca1246bdc65435 HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36"
150.138.138.73 - - [13/Feb/2020:21:35:32 +0800] "GET /js/chunk-vendors.671a83a1.js?__WB_REVISION__=852b7df2dab69602115e HTTP/1.1" 304 0 "https://coc.powerrain.cn/service-worker.js" "Mozilla/5.0 (Linux; Android 9; MI 8 Build/PKQ1.180729.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36"
150.138.138.98 - - [13/Feb/2020:21:38:07 +0800] "POST /api/login HTTP/1.1" 200 18772 "https://coc.powerrain.cn/login" "Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 8 Build/PKQ1.180729.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.7.34"
150.138.138.209 - - [13/Feb/2020:21:38:30 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 8 Build/PKQ1.180729.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.7.34"
150.138.138.145 - - [13/Feb/2020:21:38:36 +0800] "POST /api/laf/detail HTTP/1.1" 200 1470 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 8 Build/PKQ1.180729.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.7.34"
150.138.138.133 - - [13/Feb/2020:21:38:47 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 8 Build/PKQ1.180729.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.7.34"
150.138.138.78 - - [13/Feb/2020:21:38:51 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; U; Android 9; zh-cn; MI 8 Build/PKQ1.180729.001) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/71.0.3578.141 Mobile Safari/537.36 XiaoMi/MiuiBrowser/11.7.34"
150.138.138.188 - - [13/Feb/2020:21:52:31 +0800] "POST /api/laf/get HTTP/1.1" 200 1783 "https://coc.powerrain.cn/laf" "Mozilla/5.0 (Linux; Android 9; VTR-AL00 Build/HUAWEIVTR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"
150.138.138.217 - - [13/Feb/2020:21:52:39 +0800] "POST /api/laf/detail HTTP/1.1" 200 1642 "https://coc.powerrain.cn/lafdetail" "Mozilla/5.0 (Linux; Android 9; VTR-AL00 Build/HUAWEIVTR-AL00; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.136 Mobile Safari/537.36"

8
logs/main.log Normal file
View File

@ -0,0 +1,8 @@
222.162.198.61 - - [13/Feb/2020:21:15:47 +0800] "GET / HTTP/1.1" 200 14953 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:15:47 +0800] "GET /favicon.ico HTTP/1.1" 404 153 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:15:58 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:16:00 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:16:03 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:16:06 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:16:12 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
222.162.198.61 - - [13/Feb/2020:21:16:14 +0800] "GET / HTTP/1.1" 304 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"

0
logs/main443.log Normal file
View File

0
logs/myb.log Normal file
View File

2
logs/myb443.log Normal file
View File

@ -0,0 +1,2 @@
52.81.24.154 - - [13/Feb/2020:20:57:50 +0800] "GET / HTTP/1.1" 200 2814 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"
52.81.24.154 - - [13/Feb/2020:20:57:50 +0800] "GET /favicon.ico HTTP/1.1" 200 4286 "https://m.yb.powerrain.cn" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"

16
logs/qr443.log Normal file
View File

@ -0,0 +1,16 @@
182.92.67.61 - - [13/Feb/2020:20:52:49 +0800] "GET /wxapi/keyword/get HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
182.92.67.61 - - [13/Feb/2020:20:56:17 +0800] "GET /wxapi/keyword/get HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:72.0) Gecko/20100101 Firefox/72.0"
182.92.67.61 - - [13/Feb/2020:20:56:55 +0800] "GET /wxapi HTTP/1.0" 500 1816 "-" "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"
182.92.67.61 - - [13/Feb/2020:20:58:23 +0800] "GET /keyword HTTP/1.0" 500 1816 "-" "Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.14"
150.138.138.130 - - [13/Feb/2020:21:22:06 +0800] "GET /qr?id=5e3ab63f496c3c3e5a622f74 HTTP/1.1" 301 169 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_3_4 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13G35 QQ/6.5.3.410 V1_IPH_SQ_6.5.3_1_APP_A Pixel/750 Core/UIWebView NetType/2G Mem/117"
182.92.67.61 - - [13/Feb/2020:21:37:06 +0800] "GET /keyword HTTP/1.0" 500 1816 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:37:22 +0800] "GET /keyword/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:37:29 +0800] "GET /keyword1/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:37:32 +0800] "GET /keyword21/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
150.138.138.95 - - [13/Feb/2020:21:37:36 +0800] "GET / HTTP/1.1" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:01 +0800] "GET /keyword21/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:03 +0800] "GET /keyword/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
182.92.67.61 - - [13/Feb/2020:21:38:05 +0800] "GET /keyword/ HTTP/1.0" 404 1815 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
150.138.138.130 - - [13/Feb/2020:21:58:41 +0800] "GET /qr?id=5e44063356d6ee8b6d910255 HTTP/1.1" 301 169 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.10(0x17000a21) NetType/WIFI Language/zh_CN"
150.138.138.102 - - [13/Feb/2020:21:58:41 +0800] "GET /data/5e44063356d6ee8b6d910255.js HTTP/1.1" 200 526 "https://qr.powerrain.cn/qr/?id=5e44063356d6ee8b6d910255" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.10(0x17000a21) NetType/WIFI Language/zh_CN"
150.138.138.213 - - [13/Feb/2020:21:58:42 +0800] "GET /qr/img/sprite3.png HTTP/1.1" 304 0 "https://qr.powerrain.cn/qr/?id=5e44063356d6ee8b6d910255" "Mozilla/5.0 (iPhone; CPU iPhone OS 13_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/7.0.10(0x17000a21) NetType/WIFI Language/zh_CN"

0
logs/yb.log Normal file
View File

0
logs/yb443.log Normal file
View File

1
test.py Normal file
View File

@ -0,0 +1 @@
import requests