如何在bash中存储32位小端有符号整数? [英] How do I store a 32-bit little-endian Signed Integer in bash?
本文介绍了如何在bash中存储32位小端有符号整数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
(*在下面的帖子中,所有IP、端口和密码都已更改。很抱歉这篇文章的格式,编辑似乎不喜欢换行。)
问题:如何将整数存储为带符号的32位小端?
背景:我正在尝试使用RCon连接到bash中的一台Minworld服务器。到目前为止,服务器显示正在接收连接,但我无法正确格式化数据包。我可以使用mcrcon连接到服务器并在Wireshark中查看数据包,但当我尝试使用bash脚本时,数据包长度、请求ID和类型值看起来不正确。
以下是我的一些来源、疑难解答数据和我的代码,它们可能有助于回答这个问题。
实现:https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
服务器控制台:
[22:24:09警告]:跟不上!服务器是否超载?运行时间落后3190毫秒或63刻度
[22:24:23信息]:RCON连接来源:/164.256.8.10
[22:24:34警告]:跟不上!服务器是否超载?运行时间落后9961毫秒或199个刻度
[22:24:55警告]:跟不上!服务器是否超载?运行时间落后2006ms或40刻度
[22:25:12信息]:RCON连接来源:/164.256.8.10
。
Wireshark:(mcrcon数据)编码:
#!/bin/bash
# Length int Length of remainder of packet
# Request ID int Client-generated ID
# Type int 3 for login, 2 to run a command, 0 for a multi-packet response
# Payload byte[] ASCII text
# 2-byte pad byte, byte Two null bytes
# Connection details
RCON_HEADER=$(echo -e "xffxffxffxff")
HOST="192.168.0.173"
PORT=12345
LENGTH=0 # Length of packet
REQUESTID=$RANDOM
PASSWORD="$1"
RES=0
COM=2
AUTH=3
NULL="