ctyun.get_ip_location
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | vender, province, city = ctyun.get_ip_location(remote_ip) |
作用 | 返回ip的归属运营商,归属省,归属地市。 |
入参 | ip地址,可以是ipv4,也可以是ipv6。 |
返回值 | 依次为ip归属运营商,归属省,归属地市。如果没有找到则返回nil。 |
示例:
local vender, province, city = ctyun.get_ip_location("183.38.147.155")
if vender ~= nil then
ctyun.resp.set_output(vender..":"..province..":"..city.."\n")
else
ctyun.resp.set_output("unknown ip\n")
end
-- 输出结果:
-- CN_dianxin:CN_guangdong:CN_guangdong_foshan
ctyun.split_string
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | array = ctyun.split_string(str, split_token) |
作用 | 根据分隔符,分割字符串。将结果保存到数组中。 |
入参 | str为被分割的字符串,split_token为分割符。 |
返回值 | 返回分割后的结果放到数组中,可以通过ipairs遍历。 |
示例:
local result = ctyun.split_string("aaa,bbb,ccc,ddd", ",")
for k,v in ipairs(result) do
ctyun.resp.set_output(v.."\n")
end
-- 输出结果:
-- aaa
-- bbb
-- ccc
-- ddd
ctyun.refresh_mode
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | is_refresh_mode = ctyun.refresh_mode() |
作用 | 查询该请求是否处于刷新模式。 |
入参 | 无。 |
返回值 | 返回是否处于刷新模式,bool类型。 |
示例:
-- 设置缓存
local cache_key = ctyun.var('uri')
ctyun.req.set_cache(cache_key, "follow", 3600)
-- 刷新模式下跳过远程鉴权
local is_refresh_mode = ctyun.refresh_mode()
if not is_refresh_mode then
local res, err = ctyun.query_remote("http://ctyun.cn" + ctyun.var('uri'))
if err then ctyun.exit(403) end
if res.status ~= 200 then
ctyun.exit(res.status)
end
end
ctyun.get_file_size
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | length, err = ctyun.get_file_size(cache_host, cache_url, request_url) |
作用 | 根据缓存key查询文件大小。以缓存key为准,若缓存不存在以request_url回源查询。 |
入参 | cache_host: string。必填,缓存host。 cache_url: string。必填,缓存url。 request_url:string。必填,文件的请求url,格式以"/"开头(不含scheme和host)。 |
返回值 | 1.文件长度。 2.错误信息。 |
示例:
local length, err = ctyun.get_file_size("ctyun.cn", "/test.m3u8", "/test.m3u8")
if err then
ctyun.log("get file size err: ", err)
end
ctyun.worker.exiting
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | is_exiting = ctyun.worker.exiting() |
作用 | 判断Nginx的worker进程是否退出。 |
入参 | 无。 |
返回值 | is_exiting:布尔值,指示worker进程是否退出。 |
示例:
-- 例如在定时任务中, 检测到nginx进程退出则停止定时任务的执行
local is_exiting = ctyun.worker.exiting()
if is_exiting then
return
end
ctyun.worker.count
函数信息详见下表:
项目 | 描述 |
---|---|
语法 | number = ctyun.worker.count() |
作用 | 获取当前Nginx worker进程的数量,即Nginx配置中worker_processes的值。 |
入参 | 无。 |
返回值 | number:当前Nginx worker进程的数量。 |
示例:
local process_number= ctyun.worker.count()