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}