updata:更新接口和表结构
This commit is contained in:
parent
eff85c91db
commit
8b91e5a789
158
app_control.sh
158
app_control.sh
@ -1,79 +1,79 @@
|
||||
#!/bin/bash
|
||||
|
||||
VENV_DIR=".venv"
|
||||
PYTHON_APP="main.py"
|
||||
LOG_FILE="output.log"
|
||||
PID_FILE="app.pid"
|
||||
|
||||
start_app() {
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
echo -e "\033[31m Virtual environment directory $VENV_DIR not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PYTHON_APP" ]; then
|
||||
echo -e "\033[31m Python application $PYTHON_APP not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$VENV_DIR/bin/activate"
|
||||
nohup python3 "$PYTHON_APP" > "$LOG_FILE" 2>&1 &
|
||||
echo $! > "$PID_FILE"
|
||||
echo -e "\033[32m Application started! \033[0m"
|
||||
}
|
||||
|
||||
stop_app() {
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo -e "\033[31m PID file not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pid=$(cat "$PID_FILE")
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
kill "$pid"
|
||||
rm "$PID_FILE"
|
||||
echo -e "\033[32m Application ended! \033[0m"
|
||||
else
|
||||
echo -e "\033[31m Application not running or PID not found! \033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
check_app_status() {
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo -e "\033[31m Application not running! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pid=$(cat "$PID_FILE")
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
echo -e "PID: $pid"
|
||||
echo -e "\033[32m Application running! \033[0m"
|
||||
else
|
||||
echo -e "\033[31m Application not running! \033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
restart_app() {
|
||||
stop_app
|
||||
start_app
|
||||
echo -e "\033[32m Application restarted! \033[0m"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start_app
|
||||
;;
|
||||
stop)
|
||||
stop_app
|
||||
;;
|
||||
status)
|
||||
check_app_status
|
||||
;;
|
||||
restart)
|
||||
restart_app
|
||||
;;
|
||||
*)
|
||||
echo -e "\033[33m Usage: $0 {start|stop|status|restart} \033[0m"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
#!/bin/bash
|
||||
|
||||
VENV_DIR=".venv"
|
||||
PYTHON_APP="main.py"
|
||||
LOG_FILE="output.log"
|
||||
PID_FILE="app.pid"
|
||||
|
||||
start_app() {
|
||||
if [ ! -d "$VENV_DIR" ]; then
|
||||
echo -e "\033[31m Virtual environment directory $VENV_DIR not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ ! -f "$PYTHON_APP" ]; then
|
||||
echo -e "\033[31m Python application $PYTHON_APP not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$VENV_DIR/bin/activate"
|
||||
nohup python3 "$PYTHON_APP" > "$LOG_FILE" 2>&1 &
|
||||
echo $! > "$PID_FILE"
|
||||
echo -e "\033[32m Application started! \033[0m"
|
||||
}
|
||||
|
||||
stop_app() {
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo -e "\033[31m PID file not found! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pid=$(cat "$PID_FILE")
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
kill "$pid"
|
||||
rm "$PID_FILE"
|
||||
echo -e "\033[32m Application ended! \033[0m"
|
||||
else
|
||||
echo -e "\033[31m Application not running or PID not found! \033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
check_app_status() {
|
||||
if [ ! -f "$PID_FILE" ]; then
|
||||
echo -e "\033[31m Application not running! \033[0m"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
pid=$(cat "$PID_FILE")
|
||||
if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
|
||||
echo -e "PID: $pid"
|
||||
echo -e "\033[32m Application running! \033[0m"
|
||||
else
|
||||
echo -e "\033[31m Application not running! \033[0m"
|
||||
fi
|
||||
}
|
||||
|
||||
restart_app() {
|
||||
stop_app
|
||||
start_app
|
||||
echo -e "\033[32m Application restarted! \033[0m"
|
||||
}
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start_app
|
||||
;;
|
||||
stop)
|
||||
stop_app
|
||||
;;
|
||||
status)
|
||||
check_app_status
|
||||
;;
|
||||
restart)
|
||||
restart_app
|
||||
;;
|
||||
*)
|
||||
echo -e "\033[33m Usage: $0 {start|stop|status|restart} \033[0m"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
@ -5,11 +5,11 @@ host=0.0.0.0
|
||||
threaded=1
|
||||
|
||||
[database]
|
||||
host=127.0.0.1
|
||||
host=172.16.0.4
|
||||
port=3306
|
||||
user=root
|
||||
password=password
|
||||
password=123456
|
||||
database=fz_data
|
||||
|
||||
[RSA]
|
||||
key=
|
||||
key=MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAN132X+pP8D0m/if/TzcPdhpHD+4xtjW0wgkhMZh+72FJAJ35CWMbMm71bDyTq370lVvy+Eahbm2fAMPy3hIJisWuTlQ8bqscRSxyUNoVVt30qSI2Rb/uNYc79Sm6rwWdLj+mgFBKJgqmH4UHHoc17SjXIDmaW5VMVHjpiMYkRvDAgMBAAECgYBFs+tZ8RhWMAaI7T3EMmMqogZYjdzTsWUw6mF5mKwlHWrUdgxxvu0cXwhmDRUzUA8Ggc2utuzAow0L36Q/4qFUF2x99okk3ACcJsLcVm3+Ou7fhu5jtq2G7VW2J3aIIxzNs85ZsdGRBb9leZ4OVgbBGIj//GqlRiGKhR8qZma9sQJBAPgC2nHO4sNowDTIE558uPe0jh9hgdZysFUpL3FKIlbibGHQ7D/QFUcYbYqBlYbm2WluVIKF0TL2OqteKzBdbHMCQQDkmh4r7d+lmLhhr/j+200bIeLIoytHwMNOJodCUMU3gg4m0PHOEMhZsXu6EgqLXYierV/JPMxnlK93W90BQI9xAkBqTfbKD26dabnxJc1bAoTaD/dXNhlMDS7N4fBm8+rSKQ1hxAZvt8ZXCf5x/udTwoFwMo1gwPERkf9F0wBaI8FHAkALZxicLlhahTylOsbbx4qYEN+kDGeLQ7U6P7e9ehPsSeN00jVNhw7HUpAOXvoBq5+18oX1nr+/Zu49sOpcNqExAkEA6uKRPmM4rsJVtXotC1gZJsYTrGlVtY3smKG2wWE/xsw0nqAaw/MdsOkrxpNxKa0IDSOtubtyD0PIQgC2HGT4kw==
|
@ -19,9 +19,9 @@ def saveFzData(data) -> bool:
|
||||
sql = """
|
||||
INSERT INTO table_zhapian
|
||||
VALUES (
|
||||
%(uuid)s,%(callednm)s,%(zptype)s,%(zpfeatures)s,%(early_warning_time)s,
|
||||
%(warninglevel)s,%(zpcallernm)s,%(talktime)s,%(auth_code)s,%(student_number)s,
|
||||
%(transfer_amout)s,%(url_or_app_name)s,%(zp_account)s
|
||||
%(uuid)s,%(callednm)s,%(isPushZkj)s,%(called_city_name)s,%(called_province_name)s,%(called_location_county)s,
|
||||
%(insert_time)s,%(warninglevel)s,%(zpfeatures)s,%(url)s,%(data_source)s,%(url_or_app_name)s,
|
||||
%(called_location_province)s,%(pushZkjTime)s,%(zp_ip_address)s,%(first_login_time)s,%(called_location_city)s
|
||||
);
|
||||
"""
|
||||
conn = getConn()
|
||||
@ -29,21 +29,26 @@ def saveFzData(data) -> bool:
|
||||
try:
|
||||
for message in data:
|
||||
message.setdefault("uuid",None)
|
||||
message.setdefault("callednm",None)
|
||||
message.setdefault("zptype",None)
|
||||
message.setdefault("zpfeatures",None)
|
||||
message.setdefault("early_warning_time",None)
|
||||
message.setdefault("isPushZkj",None)
|
||||
message.setdefault("called_city_name",None)
|
||||
message.setdefault("called_province_name",None)
|
||||
message.setdefault("called_location_county",None)
|
||||
message.setdefault("insert_time",None)
|
||||
message.setdefault("warninglevel",None)
|
||||
message.setdefault("zpcallernm",None)
|
||||
message.setdefault("talktime",None)
|
||||
message.setdefault("auth_code",None)
|
||||
message.setdefault("student_number",None)
|
||||
message.setdefault("transfer_amout",None)
|
||||
message.setdefault("zpfeatures",None)
|
||||
message.setdefault("url",None)
|
||||
message.setdefault("data_source",None)
|
||||
message.setdefault("url_or_app_name",None)
|
||||
message.setdefault("zp_account",None)
|
||||
message.setdefault("called_location_province",None)
|
||||
message.setdefault("pushZkjTime",None)
|
||||
message.setdefault("zp_ip_address",None)
|
||||
message.setdefault("first_login_time",None)
|
||||
message.setdefault("called_location_city",None)
|
||||
print("已保存",message.get("uuid"))
|
||||
cursor.execute(sql,message)
|
||||
conn.commit()
|
||||
except:
|
||||
except Exception as e:
|
||||
print(e)
|
||||
return False
|
||||
conn.close()
|
||||
return True
|
||||
@ -51,7 +56,7 @@ def saveFzData(data) -> bool:
|
||||
def LoadFzData():
|
||||
"从数据库读取数据"
|
||||
sql = """
|
||||
SELECT * FROM `table_zhapian` ORDER BY `early_warning_time` DESC LIMIT 0,1000;
|
||||
SELECT * FROM `table_zhapian` ORDER BY `insert_time` DESC LIMIT 0,1000;
|
||||
"""
|
||||
conn = getConn()
|
||||
cursor = conn.cursor()
|
||||
|
24
fz_data.sql
24
fz_data.sql
@ -11,7 +11,7 @@
|
||||
Target Server Version : 101106 (10.11.6-MariaDB-0+deb12u1)
|
||||
File Encoding : 65001
|
||||
|
||||
Date: 23/05/2024 10:53:04
|
||||
Date: 05/07/2024 23:19:08
|
||||
*/
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
@ -34,17 +34,21 @@ DROP TABLE IF EXISTS `table_zhapian`;
|
||||
CREATE TABLE `table_zhapian` (
|
||||
`uuid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`callednm` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zptype` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zpfeatures` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`early_warning_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`warninglevel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zpcallernm` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`talktime` int(11) NULL DEFAULT NULL,
|
||||
`auth_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`student_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`transfer_amout` float NULL DEFAULT NULL,
|
||||
`isPushZkj` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`called_city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`called_province_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`called_location_county` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`insert_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zpfeatures` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`data_source` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`url_or_app_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zp_account` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`called_location_province` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`pushZkjTime` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`zp_ip_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`first_login_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
`called_location_city` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`uuid`) USING BTREE
|
||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||
|
||||
|
@ -1,51 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cn">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>反诈预警平台</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>诈骗信息</h1>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>UUID</th>
|
||||
<th>受害人号码</th>
|
||||
<th>诈骗方式</th>
|
||||
<th>诈骗类型</th>
|
||||
<th>预警时间</th>
|
||||
<th>预警等级</th>
|
||||
<th>APP/URL名称</th>
|
||||
<th>诈骗电话</th>
|
||||
<th>通话时长</th>
|
||||
<th>诈骗人账号</th>
|
||||
<th>转账金额</th>
|
||||
<th>机构授权码</th>
|
||||
<th>学号</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for item in data %}
|
||||
<tr class="odd gradeX">
|
||||
{% for v in item %}
|
||||
{% if v == None %}
|
||||
<td>-</td>
|
||||
{% else %}
|
||||
<td>{{v}}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
</body>
|
||||
|
||||
</html>
|
22
templates/log.html
Normal file
22
templates/log.html
Normal file
@ -0,0 +1,22 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-cn">
|
||||
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
|
||||
<title>反诈预警平台</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>日志</h1>
|
||||
{% for i in data %}
|
||||
<p>{{i}}</p>
|
||||
{% endfor %}
|
||||
</body>
|
||||
|
||||
</html>
|
@ -100,18 +100,22 @@
|
||||
<thead>
|
||||
<tr>
|
||||
<th>UUID</th>
|
||||
<th>受害人号码</th>
|
||||
<th>诈骗方式</th>
|
||||
<th>诈骗类型</th>
|
||||
<th>预警时间</th>
|
||||
<th>被叫号码</th>
|
||||
<th>isPushZkj</th>
|
||||
<th>报警城市</th>
|
||||
<th>报警省份</th>
|
||||
<th>报警本地 区/县</th></th>
|
||||
<th>插入时间</th>
|
||||
<th>预警等级</th>
|
||||
<th>诈骗类型</th>
|
||||
<th>URL</th>
|
||||
<th>数据源</th>
|
||||
<th>APP/URL名称</th>
|
||||
<th>诈骗电话</th>
|
||||
<th>通话时长</th>
|
||||
<th>诈骗人账号</th>
|
||||
<th>转账金额</th>
|
||||
<th>机构授权码</th>
|
||||
<th>学号</th>
|
||||
<th>报警本地省份</th>
|
||||
<th>推送时间</th>
|
||||
<th>诈骗IP地址</th>
|
||||
<th>首次登录时间</th>
|
||||
<th>报警本地城市</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
12
web/page.py
12
web/page.py
@ -17,10 +17,12 @@ def showTable():
|
||||
data = db.fz_data.LoadFzData()
|
||||
return render_template("tables.html", data=data)
|
||||
|
||||
@page_bp.route("/fz", methods=["GET"])
|
||||
def fz():
|
||||
data = db.fz_data.LoadFzData()
|
||||
return render_template("fz.html", data=data)
|
||||
@page_bp.route("/log", methods=["GET"])
|
||||
def log():
|
||||
if request.cookies.get("user") == None:
|
||||
return redirect("/login")
|
||||
file = open("output.log","r").readlines()[::-1]
|
||||
return render_template("log.html", data=file)
|
||||
|
||||
@page_bp.route("/", methods=["GET"])
|
||||
def index():
|
||||
@ -30,7 +32,7 @@ def index():
|
||||
total[0] = db.fz_data.total()
|
||||
data = db.fz_data.LoadFzData()
|
||||
for i in data:
|
||||
w_time = time.mktime(time.strptime(i[4], "%Y-%m-%d %H:%M:%S"))
|
||||
w_time = time.mktime(time.strptime(i[15], "%Y-%m-%d %H:%M:%S"))
|
||||
nowtime = time.time()
|
||||
if w_time + 60 * 60 * 24 * 7 > nowtime:
|
||||
total[1] += 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user