private void addBlockSock(SocketConnection sender) { try { if (UseBlockList) { string ip = sender.IP; if (!BlockClient.ContainsKey(ip)) { BlockClient.Add(ip, new ClienteSocketBlock()); } if (!BlockClient[ip].IsBlock) { if (BlockClient[ip].Timer < DateTime.Now.Ticks) { BlockClient[ip].Intentos = 0; } BlockClient[ip].Intentos++; BlockClient[ip].Timer = DateTime.Now.AddMinutes(1).Ticks; if (BlockClient[ip].Intentos > 6) { Log.Log.GetLog().Info(this, "addBlockSock :" + ip); BlockClient[ip].IsBlock = true; BlockClient[ip].Intentos = 0; BlockClient[ip].Timer = DateTime.Now.AddMinutes(5).Ticks; } } } } catch (Exception e) { Log.Log.GetLog().Error(this, "addBlockSock", e); } }
private void AcceptCallback(IAsyncResult value) { try { if (ListenerSocker == null) { return; } System.Net.Sockets.Socket socket = ListenerSocker.EndAccept(value); if (UseBlockList) { string ip = IP(socket); if (BlockClient.ContainsKey(ip)) { if (BlockClient[ip].IsBlock) { if (BlockClient[ip].Timer > DateTime.Now.Ticks) { Log.Log.GetLog().Info(this, "AcceptCallback Disconnect ip : " + ip); socket.Disconnect(true); } else { BlockClient[ip] = new ClienteSocketBlock(); } } } } if (socket.Connected) { getClientType(socket); } } catch (Exception e) { Log.Log.GetLog().Error(this, "AcceptCallback", e); } finally { try { if (ListenerSocker != null) { ListenerSocker.BeginAccept(new AsyncCallback(AcceptCallback), null); } } catch (Exception e) { Log.Log.GetLog().Error(this, "AcceptCallback - ListenerSocker.BeginAccept", e); try { close(); } catch (Exception ex) { Log.Log.GetLog().Error(this, "AcceptCallback - ListenerSocker.BeginAccept - close", ex); } Thread.Sleep(2000); try { startService(); } catch (Exception ex) { Log.Log.GetLog().Error(this, "AcceptCallback - ListenerSocker.BeginAccept - startService", ex); } } } OnDataChange(); }