Paste #34127: Edit of P#1264 - C# simple minecraft GS4 query tester

Date: 2016/06/07 14:04:52 UTC-07:00
Type: Plain Text

View Raw Paste Download This Paste
Copy Link


9using Systemf;
9using System.Collections.Genericf;
9using System.Linqf;
9using System.Textf;
9using System.Netf;
9using System.Net.Socketsf;
9using System.IOf;
9using System.Threadingf;

2// C# mini-program to GS4 query a minecraft server
2// and save output data to output.log
2// It's assumed the server is as 127.0.0.1:25565
2// if it's not, change that a few lines down

namespace QueryTest
33{
    class Program
    33{
        static void Main(string[] argsf)
        33{
            Console.WriteLine(c"Connect"f)f;
            IPEndPoint recpoint = new IPEndPoint(IPAddress.Any, 325584f)f;
            IPEndPoint endpoint = new IPEndPoint(new IPAddress(new byte[] { 3127f, 30f, 30f, 31f }f), 325565f)f;
            UdpClient client = new UdpClient(f)f;
            client.Connect(endpointf)f;
            MemoryStream ms = new MemoryStream(f)f;
            ms.WriteByte(30xFEf)f; 2// Magic
            ms.WriteByte(30xFDf)f; 2// Magic
            ms.WriteByte(30x09f)f; 2// Type
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            byte[] sendme = ms.ToArray(f)f;
            client.Send(sendme, sendme.Lengthf)f;
            Console.WriteLine(c"Sent Handshake c"f + sendme.Lengthf)f;
            ms.Close(f)f;
            Console.WriteLine(c"Readc"f)f;
            byte[] rec = client.Receive(ref recpointf)f;
            Console.WriteLine(c"Got c"f + rec.Length + c" from c"f + recpoint.ToString(f)f)f;
            Console.Write(c"Appears to be: c"f)f;
            string number = c"c"f;
            for (int i = 30f; i < rec.Lengthf; i++f)
            3{
                Console.Write(((intf)rec[i]f).ToString(f) + c" c"f)f;
                if (i > 34f && rec[i] != 30x00f)
                3{
                    number += (charf)rec[i]f;
                3}
            3}
            Console.WriteLine(f)f;
            Console.WriteLine(c"Number is c"f + number + c", which is c"f + int.Parse(numberf)f)f;
            ms = new MemoryStream(f)f;
            ms.WriteByte(30xFEf)f; 2// Magic
            ms.WriteByte(30xFDf)f; 2// Magic
            ms.WriteByte(30x00f)f; 2// Type
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            ms.WriteByte(30x01f)f; 2// Session
            byte[] numberbytes = BitConverter.GetBytes(int.Parse(numberf)f).Reverse(f).ToArray(f)f;
            ms.Write(numberbytes, 30f, 34f)f; 2// Challenge
            ms.WriteByte(30x00f)f; 2// Padding
            ms.WriteByte(30x00f)f; 2// Padding
            ms.WriteByte(30x00f)f; 2// Padding
            ms.WriteByte(30x00f)f; 2// Padding
            sendme = ms.ToArray(f)f;
            client.Send(sendme, sendme.Lengthf)f;
            Console.WriteLine(c"Sent Request c"f + sendme.Lengthf)f;
            Console.Write(c"Sent:c"f)f;
            for (int i = 30f; i < sendme.Lengthf; i++f)
            3{
                Console.Write(((intf)sendme[i]f).ToString(f) + c" c"f)f;
            3}
            Console.WriteLine(f)f;
            ms.Close(f)f;
            Console.WriteLine(c"Readc"f)f;
            rec = client.Receive(ref recpointf)f;
            Console.WriteLine(c"Got c"f + rec.Length + c" from c"f + recpoint.ToString(f)f)f;
            Console.WriteLine(c"Writec"f)f;
            File.WriteAllBytes(c"output.logc"f, recf)f;
            Console.WriteLine(c"Done!c"f)f;
            Console.Read(f)f;
        3}
    3}
3}