怎么做才能在最开始的socket握手里,就让捣蛋鬼死在萌芽中呢。
要解决这个问题,当然得从TDSTCPServerTransport下手,因为ServerTransport才是真正负责通讯的,可以在它的OnConnect事件下手
procedure TServerContainer1.DSTCPServerTransport1Connect( Event: TDSTCPConnectEventObject); var conn: TIdTCPConnection; begin conn := Event.Connection as TIdTCPConnection; LogInfo('From ' + conn.Socket.Binding.PeerIP + '(' + IntToStr(conn.Socket.Binding.PeerPort) + ')'); end;在这里,就能得到连接上来的IP了,在blacklist里的ip,就可以直接 conn.Disconnect。当然,由于indy的架构,线程也是已经创建了的,要真正解决DDOS,下回再重述一下Indy架构来看看如何下手。
没有评论:
发表评论