作者:rebot | 分类:模组
Minecraft 版本: 1.21.1 1.21.2 1.21.3 1.21.4 1.21.5 1.21.6 1.21.7 1.21.8 1.21.9 1.21.10 1.21.11
平台: neoforge
标签: management utility
Are you running a server and occasionally meet some players you want to get rid of, but they keep coming back using alt accounts and a VPN? Well, now you've got the chance to identify their accounts based on a hardware ID instead of unreliable IPs, skins or behaviour!
<server root>/config/hwid), along with the account UUID.Check some example scripts further down below, I don't want to bury the following two points under codeblocks as they're quite important to read.
While a hardware ID sounds invasive, it's way less confidental information than an IP address. The hardware ID is being calculated on the client using the SHA-256 algorithm, which is irreversible and therefore gives server operators no information on what hardware is being used. The hardware ID can only be used to tell unique hardware configurations apart.
#!/bin/bash
destination_path="/home/minecraftserver/config/hwid"
for file in "$destination_path"/*
do
line_count=$(wc -l <"$file") # Count the number of lines in the file
if [ "$line_count" -gt 1 ] # Check if the line count is greater than 1
then
echo ""; echo "$(basename "$file")" # Print an empty line and the filename
while IFS= read -r line # Read each line from the file
do
uuid=${line} # Assign the line to the variable 'uuid'
response=$(curl -s https://sessionserver.mojang.com/session/minecraft/profile/${uuid}) # Send a request to the Mojang API to get the profile information
name=$(echo "$response" | jq -r '.name') # Extract the 'name' field from the API response using jq
echo "${uuid} - ${name}" # Print the UUID and the corresponding name
done < "$file" # Read from the file
fi
done
import os, json, requests
search = "" # Set the search term, eg. username, UUID or parts of either
for filename in os.listdir("/home/minecraftserver/config/hwid"): # Iterate over each file in the specified directory
with open(f"/home/minecraftserver/config/hwid/{filename}", "r") as file: # Open each file in read mode
lines = file.readlines() # Read all lines from the file
if len(lines) > 1: # Check if there are more than one line in the file
result = "" # Initialize the result string
for line in lines:
uuid = line.strip() # Get the UUID from each line
response = requests.get(f"https://sessionserver.mojang.com/session/minecraft/profile/{uuid}") # Send a GET request to Mojang API to get player profile
name = json.loads(response.text)['name'] # Extract the player name from the response
result += f"{uuid} - {name}\n" # Append UUID and name to the result string
if search in result: # Check if the search string is present in the result
print(result) # Print the result请登录后举报
暂无评论,抢个沙发吧~