public static AddressIP UnblockIP(AddressIP ip) { ip.Correct = 0; ip.Incorrect = 0; ip.IpBlockDate = DateTime.Now.AddMinutes(-1); return(ip); }
private void loadIpAddresses() { string HostName = Dns.GetHostName(); IPHostEntry AddressesIP = Dns.GetHostEntry(HostName); string firstEntry = "127.0.0.1"; IPAddress firstIp = null; firstIp = IPAddress.Parse(firstEntry); foreach (IPAddress AddressIP in AddressesIP.AddressList) { if (AddressIP.IsIPv6LinkLocal || AddressIP.IsIPv6Multicast || AddressIP.IsIPv6SiteLocal || AddressIP.IsIPv6Teredo) { continue; } cbAddressList.Items.Add(firstIp); cbAddressList.Items.Add(AddressIP.ToString()); } }
public IActionResult UnblockIP() { var ip = HttpContext.Connection.RemoteIpAddress.ToString(); AddressIP address = _db.AddressIPs.Where(a => a.Address == ip).FirstOrDefault(); if (address == null) { address = new AddressIP() { Address = ip, Correct = 0, Incorrect = 0 }; _db.AddressIPs.Add(address); } address = Functions.UnblockIP(address); _db.SaveChanges(); return(RedirectToAction("Login", "Account")); }
static void Main(string[] args) { string HostName = Dns.GetHostName(); IPHostEntry IPAdresses = Dns.GetHostEntry(HostName); int counter = 0; Console.WriteLine("Your Host Name is: " + HostName); foreach (IPAddress AddressIP in IPAdresses.AddressList) { if (AddressIP.ToString() == "127.0.0.1") { Console.WriteLine("You are not connected to network: " + AddressIP.ToString()); } else { Console.WriteLine("Your IP Address " + ++counter + ":" + AddressIP.ToString()); } } Console.ReadKey(); }
public IActionResult Signin() { var ip = HttpContext.Connection.RemoteIpAddress.ToString(); AddressIP address = _db.AddressIPs.Where(a => a.Address == ip).FirstOrDefault(); if (address == null) { address = new AddressIP() { Address = ip, Correct = 0, Incorrect = 1 }; _db.AddressIPs.Add(address); } if (Functions.IsIpBlocked(address)) { if (_db.Users.Where(a => a.Nickname == App.User.Nickname).FirstOrDefault <User>() is User user) { var lastAttempt = _db.LoginAttempts.Where(a => a.AddressIp == ip && a.UserId == user.Id) .OrderByDescending(a => a.Date).FirstOrDefault(); if (lastAttempt == null) { lastAttempt = new LoginAttempt() { Attempt = 0 }; } if (Functions.IsUserBlocked(user)) { user = Functions.UnblockUser(user); } if (Functions.Login(user, App.User.Password)) { LoginAttempt loginAttempt = new LoginAttempt() { UserId = user.Id, AddressIp = ip, Attempt = 0, Date = DateTime.Now, Successful = true }; address.Correct = 1; address.Incorrect = 0; _db.LoginAttempts.Add(loginAttempt); ActionType actionType = new ActionType() { Action = "Log in", UserId = user.Id, Time = DateTime.Now }; Functions.AddActionToDatabase(_db, actionType); _db.SaveChanges(); _cache.Set(CacheNames.readMode, "0"); // set cache variables _cache.Set(CacheNames.user, user); _cache.Set(CacheNames.logged, "1"); _cache.Set(CacheNames.masterPassword, user.Password); _cache.Set(CacheNames.getMasterPassword, "0"); return(RedirectToAction("Index", "Home")); } else if (Functions.IsUserBlocked(user)) { error = "\n\nKonto jest zablokowane do " + user.AccountBlockDate; } else { LoginAttempt failedLoginAttempt = new LoginAttempt() { UserId = user.Id, AddressIp = ip, Attempt = lastAttempt.Attempt + 1, Date = DateTime.Now, Successful = false }; switch (failedLoginAttempt.Attempt) { case 1: break; case 2: user.AccountBlockDate = DateTime.Now.AddSeconds(15); user.IsAccountBlocked = true; break; case 3: user.AccountBlockDate = DateTime.Now.AddSeconds(30); user.IsAccountBlocked = true; break; case 4: user.AccountBlockDate = DateTime.Now.AddMinutes(2); user.IsAccountBlocked = true; break; default: user.AccountBlockDate = DateTime.Now.AddYears(30); user.IsAccountBlocked = true; break; } address.Incorrect++; switch (address.Incorrect) { case 1: break; case 2: break; case 3: break; case 4: break; case 5: address.IpBlockDate = DateTime.Now.AddSeconds(15); break; case 6: address.IpBlockDate = DateTime.Now.AddSeconds(30); break; default: address.IpBlockDate = DateTime.Now.AddMinutes(1); break; } _db.LoginAttempts.Add(failedLoginAttempt); _db.SaveChanges(); if (Functions.IsUserBlocked(user)) { error = "Konto jest zablokowane do " + user.AccountBlockDate; } } } } if (address.IpBlockDate > DateTime.Now) { error2 = "Twoje IP jest zablokowane do " + address.IpBlockDate; } AppViewModel appViewModel = new AppViewModel { User = App.User, Logged = Functions.getLogged(_cache), Error = error, Error2 = error2 }; return(View("Login", appViewModel)); }
public static bool IsIpBlocked(AddressIP ip) { return(ip.IpBlockDate < DateTime.Now); }