Download bt-source/panel/mod/project/node/loadutil/request_check.py from SZFSPC/apple: direct link, hf CLI and curl.
- Browser
- Download file 1.59 kB
-
https://huggingface.co/spaces/SZFSPC/apple/resolve/main/bt-source/panel/mod/project/node/loadutil/request_check.py
- Command line
-
hf download hf://spaces/SZFSPC/apple/bt-source/panel/mod/project/node/loadutil/request_check.py
-
curl -L -o request_check.py https://huggingface.co/spaces/SZFSPC/apple/resolve/main/bt-source/panel/mod/project/node/loadutil/request_check.py
1.59 kB
| import requests | |
| import socket | |
| from mod.project.node.dbutil import LoadSite, HttpNode, TcpNode | |
| from mod.project.node.nodeutil import ServerNode | |
| class RequestChecker: | |
| def check_http_node(node: HttpNode, codes=(200,)): | |
| schema = "https" if node.port in [8443, 443] else "http" | |
| url = "{}://{}:{}{}".format(schema, node.node_site_name, node.port, node.path) | |
| try: | |
| resp = requests.get(url, verify=False, timeout=10) | |
| if resp.status_code in codes: | |
| return True | |
| except: | |
| pass | |
| try: | |
| server_ip = ServerNode.get_node_ip(node.node_id) | |
| if server_ip: | |
| url = "{}://{}:{}{}".format(schema, server_ip, node.port, node.path) | |
| resp = requests.get(url, headers={ | |
| "Host": node.node_site_name | |
| }, verify=False, timeout=10) | |
| if resp.status_code in codes: | |
| return True | |
| except: | |
| pass | |
| return False | |
| def check_tcp_node(node: TcpNode) -> bool: | |
| """使用 socket 测试tcp连接""" | |
| try: | |
| # 创建 socket 对象 | |
| with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as sock: | |
| # 设置超时时间 | |
| sock.settimeout(10) | |
| # 尝试连接 | |
| sock.connect((node.host, node.port)) | |
| return True # 连接成功 | |
| except (socket.timeout, ConnectionRefusedError, OSError): | |
| return False # 连接失败或超时 | |