当前位置: 首页 > news >正文

集团网站建设特点 助君WordPress评论后自动刷新

集团网站建设特点 助君,WordPress评论后自动刷新,动画设计培训,网络舆情应急预案以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据,根据内容执行操作。 服务端脚本:http_server.sh 以下脚本使用 netcat (nc) 来监听 HTTP 请求,并通过 jq 工具解析 JSO…

以下是一个实现客户端对 Shell HTTP 服务发起 POST 请求并传入 JSON 参数的完整示例。Shell 服务会解析收到的 JSON 数据,根据内容执行操作。


服务端脚本:http_server.sh

以下脚本使用 netcat (nc) 来监听 HTTP 请求,并通过 jq 工具解析 JSON 数据。

脚本内容:
#!/bin/bashPORT=8080
echo "HTTP Server started on port $PORT..."while true; do{ # 读取请求行read request_lineecho "Request: $request_line"# 读取请求头,直到读取到空行(标志头部结束)content_length=0while read header && [[ "$header" != $'\r' ]]; doecho "$header"# 获取Content-Length值if [[ "$header" == Content-Length:* ]]; thencontent_length=$(echo $header | awk '{print $2}' | tr -d $'\r')fidone# 读取请求体if [[ $content_length -gt 0 ]]; thenread -n $content_length bodyecho "Received Body: $body"# 解析JSON并判断内容command=$(echo "$body" | jq -r '.command')echo "Command: $command"# 根据JSON中的command字段执行不同操作case $command in"start")response="Starting the service...";;"stop")response="Stopping the service...";;*)response="Unknown command: $command";;esac# 返回HTTP响应echo -e "HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\n$response"else# 未提供JSON时返回错误echo -e "HTTP/1.1 400 Bad Request\r\nContent-Type: text/plain\r\n\r\nNo body received"fi} | nc -l -p $PORT -q 1  # 使用 netcat 监听端口
done

客户端:发送 POST 请求

客户端可以使用 curl 发送 POST 请求,并携带 JSON 数据。

客户端请求示例
# 发送启动命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "start"}'# 发送停止命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "stop"}'# 发送未知命令
curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "restart"}'# 未提供JSON数据
curl -X POST http://localhost:8080

完整运行过程示例

  1. 启动服务:

    $ ./http_server.sh
    HTTP Server started on port 8080...
    
  2. 客户端发起请求:

    $ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "start"}'
    Starting the service...
    
  3. 服务端日志输出:

    Request: POST / HTTP/1.1
    Content-Type: application/json
    Content-Length: 22Received Body: {"command": "start"}
    Command: start
    
  4. 发送其他命令:

    $ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "stop"}'
    Stopping the service...$ curl -X POST http://localhost:8080 -H "Content-Type: application/json" -d '{"command": "restart"}'
    Unknown command: restart
    

注意事项

  1. 依赖工具:

    • 确保系统安装了 jq(用于解析 JSON 数据),可以通过以下命令安装:
      sudo apt install jq  # Ubuntu/Debian
      sudo yum install jq  # CentOS/Red Hat
      
    • 确保系统安装了 netcat (nc)
  2. 安全性:

    • 此实现适合测试或开发环境,不建议直接用于生产环境。
    • 生产环境建议使用更成熟的解决方案(如 Python Flask 或 Node.js)。
  3. 扩展功能:

    • 可以在 case 中增加更多命令的处理逻辑。
    • 可以验证 JSON 数据的格式,确保字段完整性。

这套脚本适合演示简单的 HTTP 服务和 JSON 数据交互,非常适合学习和快速搭建原型。


nc 命令详解

nc 是 Netcat 的命令行工具,常用于网络调试、监听端口、传输数据等。以下是命令中 nc -l -p $PORT -q 1 的含义:

选项解释
  1. -l

    • 启用监听模式,使 nc 在指定端口上等待连接。
    • 没有这个选项时,nc 作为客户端发起连接。
  2. -p $PORT

    • 指定监听的端口号(这里用变量 $PORT 表示)。
    • 例如,-p 8080 表示监听 8080 端口。
  3. -q 1

    • 在最后一次传输完成后等待 1 秒,然后关闭连接。
    • 如果没有设置 -qnc 在交互完成后可能不会立即关闭连接。

nc 常用参数

通用选项
  1. -v

    • 启用详细模式,打印更多调试信息(如连接状态、错误等)。
    • 示例:nc -v 127.0.0.1 8080
  2. -z

    • 零 I/O 模式,用于扫描端口,不发送或接收数据。
    • 常与 -v 搭配使用,测试远程主机的端口开放状态。
    • 示例:nc -zv 127.0.0.1 22
  3. -u

    • 使用 UDP 而非默认的 TCP 协议。
    • 示例:nc -u 127.0.0.1 12345
  4. -n

    • 禁用 DNS 解析,仅允许使用 IP 地址。
    • 示例:nc -n 192.168.1.1 80
  5. -e <command>

    • 执行一个命令,将该命令的输入和输出通过网络传输(远程 shell)。
    • 示例:nc -l -p 1234 -e /bin/bash
监听模式选项
  1. -l

    • 启用监听模式。
  2. -p <port>

    • 指定监听的端口。
  3. -k

    • 保持监听状态,即使已有连接也不会退出。
    • 示例:nc -l -p 8080 -k
  4. -q <seconds>

    • 在最后一次传输完成后,等待指定的秒数后关闭连接。
文件传输相关
  1. -w <seconds>

    • 设置连接超时时间(默认无限制)。
  2. 文件传输(发送文件):

    # 在发送端:
    nc -l -p 1234 < file_to_send.txt# 在接收端:
    nc 127.0.0.1 1234 > received_file.txt
    
  3. 文件传输(目录打包):

    # 发送端打包目录
    tar -cvf - my_directory | nc -l -p 1234# 接收端解压
    nc 127.0.0.1 1234 | tar -xvf -
    

nc 的应用场景

  1. HTTP 服务测试
    模拟一个简单的 HTTP 服务器:

    echo -e "HTTP/1.1 200 OK\r\n\r\nHello World" | nc -l -p 8080
    
  2. 端口扫描
    检查远程主机开放的端口:

    nc -zv 192.168.1.1 20-100
    
  3. 远程 Shell
    在远程机器上打开一个 Shell:

    # 服务端(监听远程 Shell 连接):
    nc -l -p 1234 -e /bin/bash# 客户端:
    nc 192.168.1.2 1234
    
  4. 调试网络连接
    测试网络连通性:

    nc -v 8.8.8.8 53
    
  5. 文件传输
    通过网络快速传输文件:

    # 发送端:
    nc -l -p 1234 < file.txt# 接收端:
    nc 192.168.1.2 1234 > received_file.txt
    

注意事项

  • 使用 -e 启动远程 Shell 时需要小心,可能引发安全问题。
  • 某些系统可能使用不同版本的 Netcat,如 OpenBSD ncGNU nc,某些选项可能不支持。
  • 对于需要长期运行的服务,推荐使用 -k 持续监听。

通过 nc,我们可以快速搭建原型服务,调试网络问题,甚至完成文件传输任务,是一个非常实用的网络工具。

http://www.yayakq.cn/news/684573/

相关文章:

  • 网页设计网站模板网站建设网页模板下载马鞍山网站建设公司
  • wap网站界面价格低是什么意思
  • 怎么用免费的网站空间苏州网站建设网络推广
  • 正规网站建设商家wordpress精简
  • 易网网站多少台州网站制作
  • 佛山市建设企业网站服务机构网站做百度推广划算吗
  • 河南自助建站seo公司北京建设学院网站
  • 二手书网站开发有没有代做毕业设计的网站
  • 免费的网站申请ps做 网站标准尺寸是多少合适
  • 微信网站是多少伍佰亿网站推广
  • 工作细胞第一季免费观看seo网站优化详解
  • 双语网站建设哪家便宜wordpress转内链
  • 魏县手机网站建设如何做网站大图片
  • 网站建设视频技术论坛镇江网站建设制作方案
  • 绵阳市公司网站建设找做网站找那个平台做
  • 杭州做网站的公司湖州做网站公司
  • 网站建设与网页设计制作书籍wordpress数据库密码修改
  • 登封郑州网站建设网站关键词是什么
  • 没有数据库的网站大学生网站建设报告
  • 自建团体电子商务网站建设成本南宁电子商务网站建设
  • 海南景区网站建设方案网站推广是网站建设完成之后的长期工作。
  • 中小企业网站制作广州网络服务公司找赛合公司网页设计师岗位
  • 哪些网站做的最有特色wordpress 坐标
  • 网站建设规划方案ppt北京东城网站建设
  • 网站动效是代码做的吗如何自己建立网站建设
  • 国内flash网站国外网站怎样建设
  • 聊城建设银行网站电商网站设计风格
  • 农产品网站开发技术方案与设施如何设置中国建设银行网站
  • 做网站需要哪个专业成都 网站改版
  • 猎头可以做单的网站哪个网站做漫画可以有钱