一种直接获取本地命令执行结果的方法及本地服务器技术

技术编号:24517811 阅读:41 留言:0更新日期:2020-06-17 06:52
本发明专利技术公开了一种直接获取本地命令执行结果的方法及本地服务器,该方法包括:根据用户代理发送的命令请求进行合法性检查,生成有效命令行;根据有效命令行进行执行,生成命令行输出信息;根据命令行输出信息进行过滤,得到过滤输出信息;根据过滤输出信息计算生成命令响应输出,得到命令请求的执行结果。通过实施本发明专利技术,引入新的图式,为HTML网页提供了直接执行本地命令行输出结果的能力,降低了编写前端脚本程序或者后台服务器程序的代码量。同时,由于历史积累,Linux等操作系统中存在大量优秀的命令行工具或者脚本程序,通过引入的图式,可以让Web前端代码方便地利用这些工具或者脚本完成相关工作,从而扩展Web前端技术的应用场景。

A method of directly obtaining execution result of local command and local server

【技术实现步骤摘要】
一种直接获取本地命令执行结果的方法及本地服务器
本专利技术涉及网页前端
,具体涉及一种直接获取本地命令执行结果的方法及本地服务器。
技术介绍
网页前端是运行在PC端、移动端等浏览器上展现给用户浏览的网页。前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax。当采用现有的网页前端技术访问本地系统数据或功能时,需要通过扩展JavaScript本地绑定对象的方法。例如PhoneGap为移动端的WebApp提供了大量的JavaScript本地绑定对象,从而可以让开发者在WebApp中使用它提供的接口来操作本地系统对象。又如在桌面操作系统上,当我们利用网页前端技术实现WebApp时,为了最大程度上获得对系统中各种资源的访问能力,可通过集成一个运行在本地的HTTP服务器(如Node.js)来实现此类功能。如开源的跨操作系统桌面WebApp的支持框架Electron就是一个典型应用。然而,无论使用JavaScript本地绑定还是使用Electron这种方案,都需要编写额外的脚本程序,加大了开发人员的工作量;同时上述方案中采用的ECMAScript是解释性编程语言,执行效率相对较低,且占用内存大。
技术实现思路
有鉴于此,本专利技术实施例提供了一种直接获取本地命令执行结果的方法及本地服务器,以解决现有技术中访问本地系统数据或功能时需要编写额外的脚本程序,且占用内存较大的技术问题。本专利技术提出的技术方案如下:本专利技术实施例第一方面提供一种直接获取本地命令执行结果的方法,该方法包括如下步骤:根据用户代理发送的命令请求进行合法性检查,生成有效命令行;根据所述有效命令行进行执行,生成命令行输出信息;根据所述命令行输出信息进行过滤,得到过滤输出信息;根据所述过滤输出信息计算生成命令响应输出,得到命令请求的执行结果。可选地,根据用户代理发送的命令请求进行合法性检查之前,包括:根据预设协议获取用户代理发送的命令请求,所述命令请求包括请求行、头部、空行和请求体。可选地,根据用户代理发送的命令请求进行合法性检查,生成有效命令行,包括:根据用户代理发送的命令请求检查所述命令请求是否超过设定值;当未超过设定值时,将所述请求行和请求体中的请求参数进行分离;根据所述分离的请求参数生成有效命令行。可选地,所述请求参数包括:可执行程序路径、用户标识符、过滤器和变量化命令行。可选地,根据所述有效命令行进行执行,生成命令行输出信息,包括:根据所述用户标识符确定用户身份;根据所述用户身份执行可执行程序路径指定的可执行程序,生成命令行输出信息。可选地,根据所述过滤输出信息计算生成命令响应输出,得到命令请求的执行结果,包括:判断合法性检查、执行及过滤过程是否发生错误;当未发生错误时,根据所述过滤输出信息进行格式化过滤,生成格式化输出信息;根据所述格式化输出信息计算响应体的长度;根据所述格式化输出信息和所述响应体的长度得到命令响应;将所述命令响应写入到套接字,得到命令请求的执行结果。可选地,该直接获取本地命令执行结果的方法还包括:当发生错误时,根据错误生成响应体值;根据所述响应体值得到命令响应;将所述命令响应写入到套接字,得到命令请求的执行结果。本专利技术实施例第二方面提供一种本地服务器,该本地服务器包括:请求合法性检查模块,用于根据用户代理发送的命令请求进行合法性检查,生成有效命令行;命令行执行模块,用于根据所述有效命令行进行执行,生成命令行输出信息;过滤器模块,用于根据所述命令行输出信息进行过滤,得到过滤输出信息;响应输出模块,用于根据所述过滤输出信息计算生成命令响应输出,得到命令请求的执行结果。本专利技术实施例第三方面提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如本专利技术实施例第一方面及第一方面任一项所述的直接获取本地命令执行结果的方法。本专利技术实施例第四方面提供一种直接获取本地命令执行结果的终端,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如本专利技术实施例第一方面及第一方面任一项所述的直接获取本地命令执行结果的方法。本专利技术提供的技术方案,具有如下效果:本专利技术实施例提供的直接获取本地命令执行结果的方法及本地服务器,通过新引入的lcmd图式,为HTML网页提供了直接执行本地命令行输出结果的能力,降低了编写前端脚本程序或者后台服务器程序的代码量。因此,通过实施本专利技术,解决了现有技术中访问本地系统数据或功能时需要编写额外的脚本程序,且占用内存较大的技术问题。同时,由于历史积累,Linux等操作系统中存在大量优秀的命令行工具或者脚本程序,通过lcmd图式,可以让Web前端代码方便地利用这些工具或者脚本完成相关工作,从而扩展Web前端技术的应用场景。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本专利技术实施例的直接获取本地命令执行结果的方法的流程图;图2是根据本专利技术另一实施例的直接获取本地命令执行结果的方法的流程图;图3是根据本专利技术另一实施例的直接获取本地命令执行结果的方法的流程图;图4是根据本专利技术另一实施例的直接获取本地命令执行结果的方法的流程图;图5是根据本专利技术实施例的本地服务器的结构框图;图6是根据本专利技术实施例的本地服务器的结构原理图;图7是根据本专利技术另一实施例本地服务器的结构原理图;图8是本专利技术实施例提供的直接获取本地命令执行结果终端硬件结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术实施例提供一种直接获取本地命令执行结果的方法,如图1所示,该方法包括如下步骤:步骤S101:根据用户代理发送的命令请求进行合法性检查,生成有效命令行。在一实施例中,在进行合法性检查之前,可以根据预设协议获取用户代理发送的命令请求,该命令请求包括请求行、头部、空行和请求体。其中,预设协议可以是本地服务器和用户代理(浏览器或其他客户端)进程之间的UnixDomainSocket通讯协议,该通讯协议类似HTTP1.1,可以将其称之为LCMD协议,在该实施例中可以将通讯协议的名称定为LCMD/1.0,1.0指版本号本文档来自技高网...

【技术保护点】
1.一种直接获取本地命令执行结果的方法,其特征在于,包括如下步骤:/n根据用户代理发送的命令请求进行合法性检查,生成有效命令行;/n根据所述有效命令行进行执行,生成命令行输出信息;/n根据所述命令行输出信息进行过滤,得到过滤输出信息;/n根据所述过滤输出信息计算生成命令响应输出,得到命令请求的执行结果。/n

【技术特征摘要】
1.一种直接获取本地命令执行结果的方法,其特征在于,包括如下步骤:
根据用户代理发送的命令请求进行合法性检查,生成有效命令行;
根据所述有效命令行进行执行,生成命令行输出信息;
根据所述命令行输出信息进行过滤,得到过滤输出信息;
根据所述过滤输出信息计算生成命令响应输出,得到命令请求的执行结果。


2.根据权利要求1所述的直接获取本地命令执行结果的方法,其特征在于,根据用户代理发送的命令请求进行合法性检查之前,包括:
根据预设协议获取用户代理发送的命令请求,所述命令请求包括请求行、头部、空行和请求体。


3.根据权利要求2所述的直接获取本地命令执行结果的方法,其特征在于,根据用户代理发送的命令请求进行合法性检查,生成有效命令行,包括:
根据用户代理发送的命令请求检查所述命令请求是否超过设定值;
当未超过设定值时,将所述请求行和请求体中的请求参数进行分离;
根据所述分离的请求参数生成有效命令行。


4.根据权利要求3所述的直接获取本地命令执行结果的方法,其特征在于,所述请求参数包括:可执行程序路径、用户标识符、过滤器和变量化命令行。


5.根据权利要求4所述的直接获取本地命令执行结果的方法,其特征在于,根据所述有效命令行进行执行,生成命令行输出信息,包括:
根据所述用户标识符确定用户身份;
根据所述用户身份执行可执行程序路径指定的可执行程序,生成命令行输出信息。


6.根据权利要求1所述的直接获取本地命令执行结果的方法,其特征在于,根据所述过滤输出信息计算生成命令响...

【专利技术属性】
技术研发人员:魏永明耿岳薛淑明
申请(专利权)人:北京飞漫软件技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1