Merge pull request 'dev to main' (#1) from dev into main
Reviewed-on: http://git.kakunet.top/kaku/FzHUEL/pulls/1
This commit is contained in:
commit
ad761407b7
@ -2,31 +2,61 @@
|
|||||||
|
|
||||||
VENV_DIR=".venv"
|
VENV_DIR=".venv"
|
||||||
PYTHON_APP="main.py"
|
PYTHON_APP="main.py"
|
||||||
|
LOG_FILE="output.log"
|
||||||
|
PID_FILE="app.pid"
|
||||||
|
|
||||||
start_app() {
|
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"
|
source "$VENV_DIR/bin/activate"
|
||||||
nohup python3 $PYTHON_APP > output.log 2>&1 &
|
nohup python3 "$PYTHON_APP" > "$LOG_FILE" 2>&1 &
|
||||||
|
echo $! > "$PID_FILE"
|
||||||
echo -e "\033[32m Application started! \033[0m"
|
echo -e "\033[32m Application started! \033[0m"
|
||||||
}
|
}
|
||||||
|
|
||||||
stop_app() {
|
stop_app() {
|
||||||
pid=$(ps aux | grep $PYTHON_APP | grep -v grep | awk '{print $2}')
|
if [ ! -f "$PID_FILE" ]; then
|
||||||
if [ -n "$pid" ]; then
|
echo -e "\033[31m PID file not found! \033[0m"
|
||||||
kill $pid
|
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"
|
echo -e "\033[32m Application ended! \033[0m"
|
||||||
else
|
else
|
||||||
echo -e "\033[31m Application not runing! \033[0m"
|
echo -e "\033[31m Application not running or PID not found! \033[0m"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
check_app_status() {
|
check_app_status() {
|
||||||
pid=$(ps aux | grep $PYTHON_APP | grep -v grep | awk '{print $2}')
|
if [ ! -f "$PID_FILE" ]; then
|
||||||
if [ -n "$pid" ]; then
|
echo -e "\033[31m Application not running! \033[0m"
|
||||||
echo -e "PID:" $pid
|
exit 1
|
||||||
echo -e "\033[32m Application runing! \033[0m"
|
|
||||||
else
|
|
||||||
echo -e "\033[31m Application not runing! \033[0m"
|
|
||||||
fi
|
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
|
case "$1" in
|
||||||
@ -39,8 +69,11 @@ case "$1" in
|
|||||||
status)
|
status)
|
||||||
check_app_status
|
check_app_status
|
||||||
;;
|
;;
|
||||||
|
restart)
|
||||||
|
restart_app
|
||||||
|
;;
|
||||||
*)
|
*)
|
||||||
echo -e "\033[33m Usage: $0 {start|stop|status}\033[0m"
|
echo -e "\033[33m Usage: $0 {start|stop|status|restart} \033[0m"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
@ -5,11 +5,11 @@ host=0.0.0.0
|
|||||||
threaded=1
|
threaded=1
|
||||||
|
|
||||||
[database]
|
[database]
|
||||||
host=127.0.0.1
|
host=172.16.0.4
|
||||||
port=3306
|
port=3306
|
||||||
user=root
|
user=root
|
||||||
password=password
|
password=123456
|
||||||
database=fz_data
|
database=fz_data
|
||||||
|
|
||||||
[RSA]
|
[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 = """
|
sql = """
|
||||||
INSERT INTO table_zhapian
|
INSERT INTO table_zhapian
|
||||||
VALUES (
|
VALUES (
|
||||||
%(uuid)s,%(callednm)s,%(zptype)s,%(zpfeatures)s,%(early_warning_time)s,
|
%(uuid)s,%(callednm)s,%(isPushZkj)s,%(called_city_name)s,%(called_province_name)s,%(called_location_county)s,
|
||||||
%(warninglevel)s,%(zpcallernm)s,%(talktime)s,%(auth_code)s,%(student_number)s,
|
%(insert_time)s,%(warninglevel)s,%(zpfeatures)s,%(url)s,%(data_source)s,%(url_or_app_name)s,
|
||||||
%(transfer_amout)s,%(url_or_app_name)s,%(zp_account)s
|
%(called_location_province)s,%(pushZkjTime)s,%(zp_ip_address)s,%(first_login_time)s,%(called_location_city)s
|
||||||
);
|
);
|
||||||
"""
|
"""
|
||||||
conn = getConn()
|
conn = getConn()
|
||||||
@ -29,21 +29,26 @@ def saveFzData(data) -> bool:
|
|||||||
try:
|
try:
|
||||||
for message in data:
|
for message in data:
|
||||||
message.setdefault("uuid",None)
|
message.setdefault("uuid",None)
|
||||||
message.setdefault("callednm",None)
|
message.setdefault("isPushZkj",None)
|
||||||
message.setdefault("zptype",None)
|
message.setdefault("called_city_name",None)
|
||||||
message.setdefault("zpfeatures",None)
|
message.setdefault("called_province_name",None)
|
||||||
message.setdefault("early_warning_time",None)
|
message.setdefault("called_location_county",None)
|
||||||
|
message.setdefault("insert_time",None)
|
||||||
message.setdefault("warninglevel",None)
|
message.setdefault("warninglevel",None)
|
||||||
message.setdefault("zpcallernm",None)
|
message.setdefault("zpfeatures",None)
|
||||||
message.setdefault("talktime",None)
|
message.setdefault("url",None)
|
||||||
message.setdefault("auth_code",None)
|
message.setdefault("data_source",None)
|
||||||
message.setdefault("student_number",None)
|
|
||||||
message.setdefault("transfer_amout",None)
|
|
||||||
message.setdefault("url_or_app_name",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)
|
cursor.execute(sql,message)
|
||||||
conn.commit()
|
conn.commit()
|
||||||
except:
|
except Exception as e:
|
||||||
|
print(e)
|
||||||
return False
|
return False
|
||||||
conn.close()
|
conn.close()
|
||||||
return True
|
return True
|
||||||
@ -51,7 +56,7 @@ def saveFzData(data) -> bool:
|
|||||||
def LoadFzData():
|
def LoadFzData():
|
||||||
"从数据库读取数据"
|
"从数据库读取数据"
|
||||||
sql = """
|
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()
|
conn = getConn()
|
||||||
cursor = conn.cursor()
|
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)
|
Target Server Version : 101106 (10.11.6-MariaDB-0+deb12u1)
|
||||||
File Encoding : 65001
|
File Encoding : 65001
|
||||||
|
|
||||||
Date: 23/05/2024 10:53:04
|
Date: 05/07/2024 23:19:08
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET NAMES utf8mb4;
|
SET NAMES utf8mb4;
|
||||||
@ -34,17 +34,21 @@ DROP TABLE IF EXISTS `table_zhapian`;
|
|||||||
CREATE TABLE `table_zhapian` (
|
CREATE TABLE `table_zhapian` (
|
||||||
`uuid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
`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,
|
`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,
|
`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,
|
`isPushZkj` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`talktime` int(11) NULL DEFAULT NULL,
|
`called_city_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
|
||||||
`auth_code` 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,
|
||||||
`student_number` 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,
|
||||||
`transfer_amout` float 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,
|
`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
|
PRIMARY KEY (`uuid`) USING BTREE
|
||||||
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
|
||||||
|
|
||||||
|
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>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>UUID</th>
|
<th>UUID</th>
|
||||||
<th>受害人号码</th>
|
<th>被叫号码</th>
|
||||||
<th>诈骗方式</th>
|
<th>isPushZkj</th>
|
||||||
<th>诈骗类型</th>
|
<th>报警城市</th>
|
||||||
<th>预警时间</th>
|
<th>报警省份</th>
|
||||||
|
<th>报警本地 区/县</th></th>
|
||||||
|
<th>插入时间</th>
|
||||||
<th>预警等级</th>
|
<th>预警等级</th>
|
||||||
|
<th>诈骗类型</th>
|
||||||
|
<th>URL</th>
|
||||||
|
<th>数据源</th>
|
||||||
<th>APP/URL名称</th>
|
<th>APP/URL名称</th>
|
||||||
<th>诈骗电话</th>
|
<th>报警本地省份</th>
|
||||||
<th>通话时长</th>
|
<th>推送时间</th>
|
||||||
<th>诈骗人账号</th>
|
<th>诈骗IP地址</th>
|
||||||
<th>转账金额</th>
|
<th>首次登录时间</th>
|
||||||
<th>机构授权码</th>
|
<th>报警本地城市</th>
|
||||||
<th>学号</th>
|
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
|
@ -17,6 +17,12 @@ def showTable():
|
|||||||
data = db.fz_data.LoadFzData()
|
data = db.fz_data.LoadFzData()
|
||||||
return render_template("tables.html", data=data)
|
return render_template("tables.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"])
|
@page_bp.route("/", methods=["GET"])
|
||||||
def index():
|
def index():
|
||||||
@ -26,7 +32,7 @@ def index():
|
|||||||
total[0] = db.fz_data.total()
|
total[0] = db.fz_data.total()
|
||||||
data = db.fz_data.LoadFzData()
|
data = db.fz_data.LoadFzData()
|
||||||
for i in data:
|
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()
|
nowtime = time.time()
|
||||||
if w_time + 60 * 60 * 24 * 7 > nowtime:
|
if w_time + 60 * 60 * 24 * 7 > nowtime:
|
||||||
total[1] += 1
|
total[1] += 1
|
||||||
|
Loading…
x
Reference in New Issue
Block a user