Пример #1
0
        public static void ReadMultiloginInfo(byte[] data, out MultiloginInfo[] infos)
        {
            using (PacketReader reader = new PacketReader(data))
            {
                uint count = reader.ReadUInt32(); //connected clients, structs in packet
                infos = new MultiloginInfo[count];
                for (uint i = 0; i < count; i++)
                {
                    infos[i] = new MultiloginInfo();
                    uint ip = reader.ReadUInt32();                                                                //ip
                    infos[i].IP           = new IPAddress(BitConverter.GetBytes(ip));
                    infos[i].Flags        = reader.ReadUInt32();                                                  //flags
                    infos[i].Features     = reader.ReadUInt32();                                                  //features
                    infos[i].LogonTime    = new DateTime(1970, 1, 1) + TimeSpan.FromSeconds(reader.ReadUInt32()); //logon time
                    infos[i].ConnectionId = reader.ReadUInt64();                                                  //connection id
                    reader.ReadUInt32();                                                                          // unknown
                    uint   clientNameSize = reader.ReadUInt32();                                                  // client name size
                    byte[] clientName     = reader.ReadBytes((int)clientNameSize);                                //client name
                    infos[i].ClientName = Encoding.UTF8.GetString(clientName);
                }

                reader.Close();
            }
        }
Пример #2
0
 /// <summary>
 /// Stwórz argumenty dla multilogowania.
 /// </summary>
 /// <param name="info">Informacje o multilogowaniu</param>
 public MultiloginEventArgs(MultiloginInfo info)
 {
     _info = info;
 }