本机运行一个服务器程序,另一台电脑上(外网)运一个客户端程序,现在因为某一原因,服务器程序要限制一个IP(外网IP)为225.222.13.45(假设)的客户端的程序的联接
问题:怎么样才能限制225.222.13.45这个IP的联接?要求对其他IP不限制

解决方案 »

  1.   

    在有Socket连接的时候,获得对方的IP地址,如果和你给相同就接受连接,否则关闭连接,这样应该可以实现
      

  2.   

    运行(gpedit.msc)选择-windows设置-安全设置-在IP安全策略中添加规则就行了
      

  3.   

    1.你服务器连外网肯定经过路由器的,一般路由器都会有防火墙的功能,设置一下就可以了。
    2.在你服务器软件里设置不让此IP登陆。  如INDY控件做的服务器。
      if AThread.Connection.Socket.Binding.PeerIP='225.222.13.45' then 
         AThread.Connection.Disconnect;
      

  4.   

    以上问题是我提的,现在换了个用户
    可能是我说的不够清楚吧,我把实际的说下,我有个游戏的反外挂程序,在用户运行游戏的时候反外挂程序也会运行,为了防止反外挂程序被关闭,所以每过两分钟就会向反外挂服务端发送一个信息,而服务器端如果2分钟后没收到信息,就禁止此IP的联接,现在假设IP为225.222.13.45,那么请问服务器端应该代码怎么写才能禁止此IP的的联接?
      

  5.   

    OnAccept当中处理。现在有很多控件都支持此设置(当然对于游戏来说,一般会有自己的网络架构,大致相同,对于windows下可以在Accept(包括WSAAccept,AcceptEx等)当中进行处理。在Accept到一个用户之后,进行IP权限检验(当然对于你的反外挂服务器可以定时的修改这个受限的IP列表,其实这个限制应该是有有效时间的,即通常所称的冻结多少多少时间),如果为受限则立即断开。最好的处理方式应该放在SPI或者更底层去处理,也就是防火墙,只不过是自己的防火墙。