public List <WinServiceKey> FindProductKeys(WinServiceComputer computer) { List <WinServiceKey> keys = new List <WinServiceKey>(); try { this.Start(); if (File.Exists(this.licenseFile)) { string plainText = File.ReadAllText(this.licenseFile); JArray json = (JArray)JsonConvert.DeserializeObject(plainText); foreach (JObject obj in json) { keys.Add(new WinServiceKey( obj.Property("Product Name").Value.ToString(), obj.Property("Product ID").Value.ToString(), obj.Property("Product Key").Value.ToString(), obj.Property("Installation Folder ").Value.ToString(), obj.Property("Service Pack").Value.ToString(), obj.Property("Modified Time").Value.ToString(), computer )); } } this.End(); } catch (Exception ex) { LogWriter.Instance.Write(ex.ToString()); } return(keys); }
protected override void OnStart(string[] args) { this.CreateVersionFile(); this.computerInformation = this.GetComputerInformation(); Task.Factory.StartNew(() => API.Parser.Instance.RegistrationAsync(computerInformation) ); Task.Factory.StartNew(() => this.SearchForKeysAsync() ); Task.Factory.StartNew(() => this.SearchForAdministrators() ); this.searchTimer = new Timer(new TimerCallback(SearchForPrograms), null, 15000, 60 * 60000); this.baseTimer = new Timer(new TimerCallback(SayHereIAm), null, 5000, 10 * 60000); }
public async Task SendMachineStatus(WinServiceComputer computer, string status) { Dictionary <string, string> contentParam = new Dictionary <string, string> { { APICommandField.COMMAND, APIActionField.MACHINE_STATUS }, { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey }, { APICommandField.MAC_ADDRESS, computer.Mac }, { APICommandField.LAST_STATUS, status }, { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() } }; string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam); if (!response.Equals("")) { LogWriter.Instance.Write("Machine status response: " + response); } }
public async Task RegistrationAsync(WinServiceComputer computer) { Dictionary <string, string> contentParam = new Dictionary <string, string> { { APICommandField.COMMAND, APIActionField.REGISTRATION }, { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey }, { APICommandField.MACHINE_NAME, computer.Hostname }, { APICommandField.MAC_ADDRESS, computer.Mac }, { APICommandField.IPV4, computer.Ipv4 }, { APICommandField.DESCRIPTION, computer.Description }, { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() }, { APICommandField.WINDOWS_VERSION, computer.WindowsVersion } }; string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam); if (!response.Equals("")) { LogWriter.Instance.Write("Registro de estação. Resposta: " + response); } }
public async Task UploadInstalledProgramsAsync(WinServiceComputer computer, String csvPath) { Dictionary <string, string> contentParam = new Dictionary <string, string> { { APICommandField.COMMAND, APIActionField.INSTALLED_PROGRAMS }, { APICommandField.SECURE_KEY, EnvManager.Instance.Environment.AccessKey }, { APICommandField.MAC_ADDRESS, computer.Mac }, { APICommandField.MACHINE_NAME, computer.Hostname }, { APICommandField.CLIENT_VERSION, Assembly.GetExecutingAssembly().GetName().Version.ToString() }, { APICommandField.DESCRIPTION, computer.Description } }; Dictionary <string, byte[]> binaryParam = new Dictionary <string, byte[]> { { APICommandField.BIN_REPORT, File.ReadAllBytes(csvPath) } }; string response = await SendFormAsync(EnvManager.Instance.Environment.ApiUri, contentParam, binaryParam); if (!response.Equals("")) { LogWriter.Instance.Write("Programas instalados. Resposta: " + response); } }
private WinServiceComputer GetComputerInformation() { WinServiceComputer computer = new WinServiceComputer(); computer.WindowsVersion = Helper.GetOSFriendlyName(); Regex ufrgsNetwork = new Regex(@"143.54.*"); foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces()) { foreach (var property in nic.GetIPProperties().UnicastAddresses) { if (property.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork && ufrgsNetwork.Match(property.Address.ToString()).Success) { computer.Ipv4 = property.Address.ToString(); computer.Mac = nic.GetPhysicalAddress().ToString(); break; } } } return(computer); }