Skip to content

Commit

Permalink
correcao de bug na verificacao de ips quando computador é cliente/ser…
Browse files Browse the repository at this point in the history
…vidor
  • Loading branch information
TroniPM committed Nov 27, 2017
1 parent 588fb21 commit 5722e04
Show file tree
Hide file tree
Showing 9 changed files with 99 additions and 15 deletions.
1 change: 0 additions & 1 deletion key_server_pub.txt

This file was deleted.

1 change: 0 additions & 1 deletion key_this_pri.txt

This file was deleted.

1 change: 0 additions & 1 deletion key_this_pub.txt

This file was deleted.

2 changes: 1 addition & 1 deletion nbproject/private/private.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@ do.depend=false
do.jar=true
javac.debug=true
javadoc.preview=true
user.properties.file=C:\\Users\\Mateus\\AppData\\Roaming\\NetBeans\\8.1\\build.properties
user.properties.file=/home/pmateus/.netbeans/8.1/build.properties
14 changes: 12 additions & 2 deletions src/entidades/network/Servidor.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,16 @@
import entidades.network.sendible.User;
import entidades.network.sendible.UserArray;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.UnknownHostException;
import java.security.PrivateKey;
import java.security.PublicKey;
import java.util.Enumeration;
import java.util.List;
import javax.crypto.SecretKey;
import org.bouncycastle.crypto.DataLengthException;
import util.Methods;
import util.Session;

/**
Expand Down Expand Up @@ -424,7 +429,7 @@ public void run() {
}
}
//Caso seja conexão do cliente DENTRO do servidor
if (socket.getInetAddress().getHostAddress().equals(Inet4Address.getLocalHost().getHostAddress())) {
if (Methods.isIpFromServidor(socket.getInetAddress().getHostAddress())) {
Session.addLog("PACKAGE recebido foi do Cliente DENTRO servidor...");
keySessao = Session.security.passo2.KEY_ENCRIPTACAO;
keyPublic = Session.security.passo2.KEY_PUBLICA;
Expand Down Expand Up @@ -452,6 +457,11 @@ public void run() {
} catch (Exception ex) {
}

if (keySessao == null) {
Session.addLog("Não foi possível encontrar uma chave de decriptação.");
return;
}

//#3 - PRINCIPAL
try {
byte[] data = Session.security.decriptografaSimetrica(msgBytes, keySessao);
Expand Down Expand Up @@ -500,7 +510,7 @@ public void run() {
} catch (Exception ex) {
//Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (IOException ex) {
} catch (Exception ex) {
//Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
Session.canShowMainMenuByConnectionError = true;
}
Expand Down
4 changes: 0 additions & 4 deletions src/ui/MainMenu.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,7 @@
import java.net.UnknownHostException;
import java.util.Timer;
import java.util.TimerTask;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import security.Security;
import util.Methods;
import util.Session;

/**
Expand Down
15 changes: 14 additions & 1 deletion src/ui/SalaDeEspera.form
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,27 @@
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Tahoma" size="18" style="0"/>
</Property>
<Property name="text" type="java.lang.String" value="Sala de Espera"/>
<Property name="text" type="java.lang.String" value="Aguardando o in&#xed;cio do jogo... Sala de Espera em"/>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
<AbsoluteConstraints x="110" y="50" width="-1" height="-1"/>
</Constraint>
</Constraints>
</Component>
<Component class="javax.swing.JLabel" name="jLabel3">
<Properties>
<Property name="font" type="java.awt.Font" editor="org.netbeans.beaninfo.editors.FontEditor">
<Font name="Dialog" size="14" style="1"/>
</Property>
<Property name="text" type="java.lang.String" value="aaaaaaaaaaaa"/>
</Properties>
<Constraints>
<Constraint layoutClass="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout" value="org.netbeans.modules.form.compat2.layouts.DesignAbsoluteLayout$AbsoluteConstraintsDescription">
<AbsoluteConstraints x="110" y="80" width="420" height="50"/>
</Constraint>
</Constraints>
</Component>
<Container class="javax.swing.JScrollPane" name="jScrollPane1">
<AuxValues>
<AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
Expand Down
16 changes: 12 additions & 4 deletions src/ui/SalaDeEspera.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
import entidades.network.Servidor;
import entidades.network.sendible.User;
import java.awt.Dimension;
import java.net.ServerSocket;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import util.Methods;
import util.Session;

/**
Expand Down Expand Up @@ -109,7 +109,8 @@ public SalaDeEspera(boolean isMaster) {

if (!isMaster) {
Session.isServidor = false;
this.jLabel1.setText("Sala de Espera em " + Session.masterIP + ". Aguardando o início do jogo...");
this.jLabel3.setText(Methods.getAvaliableIps());
//this.jLabel1.setText("Sala de Espera em " + Session.masterIP + ". Aguardando o início do jogo...");
jScrollPane1.setEnabled(false);
jScrollPane1.setVisible(false);
this.remove(jScrollPane1);
Expand Down Expand Up @@ -167,7 +168,8 @@ public SalaDeEspera(boolean isMaster) {
Session.JFramePrincipal.changeScreen(new MainMenu());

}
this.jLabel1.setText("Sala de Espera criada. Seu IP local é: " + Session.masterIP);
this.jLabel3.setText("<html>" + Methods.getAvaliableIps() + "</html>");
//this.jLabel1.setText("Sala de Espera criada. Seu IP local é: " + Session.masterIP);

} catch (UnknownHostException ex) {
Logger.getLogger(SalaDeEspera.class
Expand All @@ -191,6 +193,7 @@ public SalaDeEspera(boolean isMaster) {
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jScrollPane1 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jButton1 = new javax.swing.JButton();
Expand All @@ -202,9 +205,13 @@ private void initComponents() {
setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

jLabel1.setFont(new java.awt.Font("Tahoma", 0, 18)); // NOI18N
jLabel1.setText("Sala de Espera");
jLabel1.setText("Aguardando o início do jogo... Sala de Espera em");
add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 50, -1, -1));

jLabel3.setFont(new java.awt.Font("Dialog", 1, 14)); // NOI18N
jLabel3.setText("aaaaaaaaaaaa");
add(jLabel3, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 80, 420, 50));

jTable1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
Expand Down Expand Up @@ -344,6 +351,7 @@ private void pingar() {
private javax.swing.JButton jButton3;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
Expand Down
60 changes: 60 additions & 0 deletions src/util/Methods.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package util;

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
import entidades.network.Servidor;
import entidades.network.sendible.EndRound;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
Expand All @@ -10,6 +11,12 @@
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.util.Enumeration;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
*
Expand Down Expand Up @@ -119,4 +126,57 @@ public static Object convertFromString(String str) throws ClassNotFoundException
}
return null;
}

public static boolean isIpFromServidor(String ip) {
try {
if (ip.equals(Inet4Address.getLocalHost().getHostAddress())) {
return true;
}
} catch (Exception ex) {
Logger.getLogger(Servidor.class.getName()).log(Level.SEVERE, null, ex);
}

try {
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface n = (NetworkInterface) e.nextElement();
Enumeration ee = n.getInetAddresses();
while (ee.hasMoreElements()) {
InetAddress i = (InetAddress) ee.nextElement();
//System.out.println(i.getHostAddress());
if (i.getHostAddress().equals(ip)) {
return true;
}
}
}
} catch (Exception e) {
}

return false;
}

public static String getAvaliableIps() {
String ret = "";
try {
Enumeration e = NetworkInterface.getNetworkInterfaces();
while (e.hasMoreElements()) {
NetworkInterface n = (NetworkInterface) e.nextElement();
Enumeration ee = n.getInetAddresses();
while (ee.hasMoreElements()) {
InetAddress i = (InetAddress) ee.nextElement();
//System.out.println(i.getHostAddress());
ret += "'" + i.getHostAddress() + "'";
if (ee.hasMoreElements()) {
ret += " ou ";
}
}
if (e.hasMoreElements()) {
ret += " ou ";
}
}
} catch (Exception e) {
}

return ret;
}
}

0 comments on commit 5722e04

Please sign in to comment.