Guest Gostosão do fórum SrKerwin Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Como eu faço para bloquear um IP de entrar no servidor? (e mais.. como eu faço para pegar uma StringList desses IPs?) Tipo: IPs: - "155.155.155.0" - "255.255.255.0" - "17.35.18.50" Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Nenhum funcionou.. funciona em qualquer versão? tipo já e o 4º modo que eu faço e não da :'( T.T Tu testou? Adiciona eu teu ip ai pra tu ver... Eu testei. Link para o comentário Compartilhar em outros sites More sharing options...
LuizB Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 (editado) Fácil @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST) public void prisaoentra(PlayerPreLoginEvent e) { for(String ip : Main.ins.getConfig().getStringList("IPs")){ if (e.getAddress().equals(ip)) { e.setKickMessage("Falha Ao Conectar Ao Servidor"); } } } Fiz aqui mesmo, não testei Editado Maio 20, 2016 por Cuthmf Link para o comentário Compartilhar em outros sites More sharing options...
Guest Gostosão do fórum SrKerwin Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Fácil @SuppressWarnings("deprecation") @EventHandler(priority = EventPriority.HIGHEST) public void prisaoentra(PlayerPreLoginEvent e) { for(String ip : Main.ins.getConfig().getStringList("IPs")){ if (e.getAddress().equals(ip)) { e.setKickMessage("Falha Ao Conectar Ao Servidor"); } } } Fiz aqui mesmo, não testei vou testar Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 vou testar Perai que vou te dar um exemplo mais performático, não fecha '-' Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 (editado) Na classe: Set<Integer> blockIps; No onEnable: blockIps = getConfig().getStringList("ips").stream().map(e -> { try { return InetAddress.getByName(e); } catch (UnknownHostException e1) { e1.printStackTrace(); } return null; }).map(InetAddresses::coerceToInteger).collect(Collectors.toSet()); No evento... @EventHandler private void onJoin(AsyncPlayerPreLoginEvent e) { Integer intIp = InetAddresses.coerceToInteger(e.getAddress()); if (blockIps.contains(intIp)) { e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "vc n pode entra"); } } Como o 'contains' do HashSet tem uma performance de O(1) vai ser muito melhor. Eu converti pra Integer mas creio que de pra fazer direto com InetAdress Tbm da assim, acho que deve ser a mesma coisa. blockIps = new HashSet<>(getConfig().getStringList("ips")); @EventHandler private void onJoin(AsyncPlayerPreLoginEvent e) { if (blockIps.contains(e.getAddress().getHostAddress())) { e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "vc n pode entra"); } } Editado Maio 20, 2016 por leonardosc Link para o comentário Compartilhar em outros sites More sharing options...
Guest Gostosão do fórum SrKerwin Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Na classe: Set<Integer> blockIps; No onEnable: blockIps = getConfig().getStringList("ips").stream().map(e -> { try { return InetAddress.getByName(e); } catch (UnknownHostException e1) { e1.printStackTrace(); } return null; }).map(InetAddresses::coerceToInteger).collect(Collectors.toSet()); No evento... @EventHandler private void onJoin(AsyncPlayerPreLoginEvent e) { Integer intIp = InetAddresses.coerceToInteger(e.getAddress()); if (blockIps.contains(intIp)) { e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "vc n pode entra"); } } Como o 'contains' do HashSet tem uma performance de O(1) vai ser muito melhor. Eu converti pra Integer mas creio que de pra fazer direto com InetAdress Tbm da assim, acho que deve ser a mesma coisa. blockIps = new HashSet<>(getConfig().getStringList("ips")); @EventHandler private void onJoin(AsyncPlayerPreLoginEvent e) { if (blockIps.contains(e.getAddress().getHostAddress())) { e.disallow(AsyncPlayerPreLoginEvent.Result.KICK_OTHER, "vc n pode entra"); } } Nenhum funcionou.. funciona em qualquer versão? tipo já e o 4º modo que eu faço e não da :'( t.t Link para o comentário Compartilhar em outros sites More sharing options...
Guest Gostosão do fórum SrKerwin Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Tu testou? Adiciona eu teu ip ai pra tu ver... Eu testei. Vou tentar outras coisas aqui :| Link para o comentário Compartilhar em outros sites More sharing options...
leonardosc Postado Maio 20, 2016 Denunciar Compartilhar Postado Maio 20, 2016 Vou tentar outras coisas aqui :| ;=; ok Sua dúvida foi marcada como [Resolvido] e movido à área de dúvidas resolvidas. Atenciosamente, Gamer's Board Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest Gostosão do fórum SrKerwin
Como eu faço para bloquear um IP de entrar no servidor? (e mais.. como eu faço para pegar uma StringList desses IPs?)
Tipo:
Link para o comentário
Compartilhar em outros sites
8 respostass a esta questão
Posts Recomendados