Skip to content

公用库

宝塔提供了公用库来进行统一的操作,如文件,网络等:

python
import public

读取文件

python
#@param filename 文件名[必传]
#@param mode 文件打开模式 默认 r
#@return bool
f_body = public.ReadFile(filename,mode='r')

写入文件

python
#@param filename 文件名[必传]
#@param f_body 要写入的内容[必传]
#@param mode 文件打开模式 默认 w+
#@return bool
result = public.WriteFile(filename,f_body,mode='w+')

计算字符串的 MD5

python
#@param strings 要被计算的字符串[必传]
#@return string 小写的 MD5 结果
md5 = public.md5(strings)

计算文件的 MD5

python
#@param filename 文件名
#@return string 小写的 MD5 结果
file_md5 = public.FileMd5(filename)

写面板日志

python
#@param log_type 日志类型[必传] 如:登录面板
#@param log_body 日志内容[必传] 如:登录成功
#@return None
public.WriteLog(log_type,log_body)

使用 GET 方式请求 HTTP

python
#@param url URL 地址[必传]
#@param timeout 超时时间 默认 60 秒
#@return string 成功返回 http 响应内容,失败返回错误代码
http_body = public.HttpGet(url,timeout=60)

使用 POST 方式请求 HTTP

python
#@param url URL 地址[必传]
#@param data POST 数据[必传]
#@param timeout 超时时间 默认 60 秒
#@return string 成功返回 http 响应内容,失败返回错误代码
http_body = public.HttpPost(url,data,timeout=60)

取随机字符串

python
#@param length 随机字符串长度 默认 16
#@return string
random = public.GetRandomString(length=16)

构造通用响应内容

python
#@param status 响应状态[必传] True|False
#@param return_msg 响应内容[必传]
return public.ReturnMsg(True,'操作成功!')

取指定文件的权限

python
#@param filename 文件名[必传]
#@return string 权限字符器 如 755
f_mode = public.GetFileMode(filename)

取当前使用的 web 服务器

python
#@return string 服务器类型 nginx|apache
web_server = public.GetWebServer()

重载当前 web 服务器

python
#@return bool
public.restart_webserver()

重载指定 PHP 版本

python
#@param version PHP 版本 如要重载 php7.2:72
public.phpReload()

通过管道执行 SHELL 命令

python
#@param shell_str 要被执行的 SHELL 命令[必传]
#@return list 命令执行结果 返回格式: ["正常输出","异常输出"]
result = public.ExecShell(shell_str)

获取本服务器 IP 地址

python
#@return string IP 地址
ip = public.GetLocalIp()

获取用户 IP 地址

python
#@return string IP 地址
client_ip = public.GetClientIp()

获取当前访问的 HOST 及端口信息

python
#@param port 返回端口[选传] True|False 默认为 False
host = public.GetHost()
port = public.GetHost(True)

取文件尾指定行数的内容

python
#@praam filename 文件名[必传]
#@param num 指定要取的行数[必传]
#@return string 获取到的内容
last_body = public.GetNumLines(filename,num)

字节单位转换(KB,MB,GB,TB)

python
#@param b_size 要被转换的字节数[必传]
#@return string 转换结果
size = public.to_size(b_size)

判断指定进程是否存在

python
#@param process_name 进程名[必传]
#@param exe 执行文件路径[选传]默认为 None 不判断,若传入值,验证执行文件路径#@return bool
is_exists = public.process_exists(process_name,exe=None)

取服务器 mac 地址

python
mac_address = public.get_mac_address()

重启面板

python
public.restart_panel();

取当前格式化时间

python
#@param format 格式,默认为 %Y-%m-%d %X 2018-12-10 00:00:00
format_date = public.getDate(format='%Y-%m-%d %X')

XSS 过滤

python
#@param data 要被过滤的字符串[必传]
input_body = public.checkInput(data)

获取面板自带数据库的 sqlite 数据库对象

python
#@param table 表名
#@return 数据库对象
db_obj = public.M('sites')

仅用于培训和测试,通过使用本站代码内容随之而来的风险与本站无关。版权所有,未经授权请勿转载,保留一切权利。
ICP备案号:滇ICP备15009214号-13   公安网备:滇公网安备 53312302000061号