summaryrefslogtreecommitdiff
path: root/agent
diff options
context:
space:
mode:
authorhandingkang <[email protected]>2024-04-08 16:10:00 +0800
committerhandingkang <[email protected]>2024-04-08 16:10:00 +0800
commitbb870fc920277c6abbd5471ac24aa68033abf501 (patch)
tree2522a97a6e7ace3a523974b3d191d5d3f379562e /agent
parentc9fa15af845509d1f28fe98e295a0e63a186e15f (diff)
实现代理向主控端注册的功能
Diffstat (limited to 'agent')
-rw-r--r--agent/app.py21
-rw-r--r--agent/requirements.txt4
2 files changed, 17 insertions, 8 deletions
diff --git a/agent/app.py b/agent/app.py
index 8216abb..86e5c87 100644
--- a/agent/app.py
+++ b/agent/app.py
@@ -4,7 +4,7 @@ import os.path
import platform
import socket
-import geocoder
+import ipinfo
import psutil
import requests
import yaml
@@ -38,21 +38,26 @@ def nodeinfo():
v6addr.append(a[4][0])
# 经纬度
- g = geocoder.ip('me')
- lat, lng = g.lat, g.lng
+ # 使用ipinfo.io进行定位,调用token
+ token = "40e1b13cf6b35a"
+ handler = ipinfo.getHandler(token)
+ details = handler.getDetails()
+ # 获取经纬度
+ latlng = str(details.loc).split(",")
+ lat, lng = latlng[0], latlng[1]
# CPU核心数
cpu_num = psutil.cpu_count()
# 内存信息
- ram_size = psutil.virtual_memory().total
+ ram_size = int(psutil.virtual_memory().total / (1024 * 1024 * 1024))
ram_per = psutil.virtual_memory().percent
# 操作系统
system = platform.system()
#
return {'v6addr': v6addr, 'lat': lat, 'lng': lng, 'cpu_num': cpu_num, 'ram_size': ram_size, 'ram_per': ram_per,
- 'system': system}
+ 'sys': system}
# 注册代理
@@ -60,8 +65,10 @@ def registernode(proto="http", port=2525, atype="stgj", server="127.0.0.1:8888")
info = nodeinfo()
info["port"] = port
info["type"] = atype
- r = requests.post(proto + "://" + server, json=info)
+ print(info)
+ r = requests.post(proto + "://" + server + "/agent/register", json=info)
if r.status_code != 200:
+ print(r.status_code)
print("注册失败,请检查参数配置是否正确")
return
return r.json()['id']
@@ -73,7 +80,7 @@ if __name__ == '__main__':
# 存在则读取配置文件信息
with open("config.yaml", "r") as f:
config = yaml.safe_load(f)
- app.run(host="0.0.0.0", port=config["port"], debug=True)
+ app.run(host="0.0.0.0", port=config["port"], debug=True)
else:
# 不存在则解析命令行参数
# 命令行参数设置
diff --git a/agent/requirements.txt b/agent/requirements.txt
index 581b4bf..fbc3eb3 100644
--- a/agent/requirements.txt
+++ b/agent/requirements.txt
@@ -7,4 +7,6 @@ six~=1.16.0
pandas~=2.1.4
psutil~=5.9.0
geocoder~=1.38.1
-pyyaml~=6.0.1 \ No newline at end of file
+pyyaml~=6.0.1
+dnspython~=2.6.1
+icmplib~=3.0.4 \ No newline at end of file