Android - Envío de información por IP de datos

 
Vista:

Envío de información por IP de datos

Publicado por Javier (8 intervenciones) el 21/01/2018 13:26:33
Buenas tardes,
Estoy realizando una aplicación que envía información a través de la IP de cada uno de los terminales. De esta manera los dos moviles conocen la IP del otro y se comunican. Cuando hago este intercambio de información con los dos terminales conectados al WIFI de mi casa, lo hace todo correctamente.

El problema viene cuando uno de ellos esta conectado a los datos de la compañia. En ese momento aunque el otro terminal conozca su IP no le llega información.
No consigo solucionar este problema, alguien sabría que es lo que puede estar ocurriendo?

Utilizo este código para obtener la IP del terminal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static String getIP() {
    List<InetAddress> addrs;
    String address = "";
    try {
        List<NetworkInterface> interfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
        for (NetworkInterface intf : interfaces) {
            addrs = Collections.list(intf.getInetAddresses());
            for (InetAddress addr : addrs) {
                if (!addr.isLoopbackAddress() && addr instanceof Inet4Address) {
                    address = addr.getHostAddress().toUpperCase(new Locale("es", "MX"));
                }
            }
        }
    } catch (Exception e) {
        Log.w(TAG, "Ex getting IP value " + e.getMessage());
    }
    return address;
}

Quizás este cogiendo mal la IP de datos del móvil?? O no se puede hacer intercambio de información a traves de las IP de la red de datos??

Gracias a todos y Saludos!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Envío de información por IP de datos

Publicado por Israel (5 intervenciones) el 27/01/2018 04:58:48
Hola, el problema radica que en tu casa los dispositivos se manejan bajo una red propia donde las direcciones son solo para uso local, al utilizar la red de datos esta figura cambia totalmente, por ejemplo:

- Red de casa = 192.168.0.0/24, las direcciones son entregadas por DHCP:
* cel 1 = 192.168.0.1
* cel 2 = 192.168..0.2
* cel n = 192.168.0.254

Al cambiar a la red de datos, estas direcciones ya no son utilizadas, son de otro tipo que pueden utilzarse, por ejemplo: 180.16.244.X,
pero tambien existe otro inconveniente, estas direcciones no son entregadas a cada dispositivo, si no que puede pasar lo siguiente:

- La red de datos que se conecta con tu ISP realiza NAT donde muchas direcciones IP salen a través de una sola dirección IP, te recomiendo que leas conceptos de NAT en redes.
- Que la direccion IP entregada este apuntando a algun tipo de puerto, digamos: 222.132.15.XXX:numero_de_puerto.
- Por último, que la direccion IP sea dinamica.

Espero haberte ayudado, un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Javier (8 intervenciones) el 27/01/2018 17:14:36
Hola Israel,

Tengo comprobado que cuando cambio del wifi de casa a la red de datos, el móvil me da una nueva IP(llamemosla IP1). Desde otro dispositivo conectado a la red wifi o a la red de datos intento enviar información a la IP1 pero esta nunca recibe la información.

Por lo que me comentas, puede ser que no tenga que enviarlo a una dirección IP solo si no que además saber su puerto?

Conozco el tema de las IP dinámicas por ello mi aplicación comprueba cada cierto tiempo que la IP no haya variado y si varía informa a los demás móviles.

Mi pregunta es la siguiente: ¿Conociendo la IP del terminal que quiero enviar información, que esta conectado a la red de datos, es posible enviarle información a través de los sockets, como hago cuando están los dos dispositivos en la misma red WIFI?

Saludos y gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Israel (5 intervenciones) el 28/01/2018 16:13:09
Hola, me olvidé comentarte, antes de pasar a los sockets, puedes verificar que el dispositivo que se conecta a la red de datos esta detras de un proxy? a veces las aplicaciones tienen problemas por este servidor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Javier (8 intervenciones) el 28/01/2018 17:23:34
Perdona que te vuelva a molestar, como podría saber si el dispositivo esta detrás de un proxy?
Y de ser así como utilizaría los sockets para poder intercambiar la informacion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Israel (5 intervenciones) el 28/01/2018 18:25:03
No te preocupes estamos para ayudar; me pillaste en curva en la verificacion de navegacion a través de un proxy (debo investigar tal tema en profundidad) una posible solución a tu problema pero quizás en parte algo compleja sería que los dispositivos se conecten a un servidor web y envíen y recojan datos de tal servidor utilizando web services, de esta forma, tu aplicacion en vez de "apuntar" a las IP de los dispositivos, podrian apuntar a una direccion web, por ejemplo: "www.algo.com/servicio_web.php" pero como te dije es una posible solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Javier (8 intervenciones) el 28/01/2018 21:04:34
Se trata de un PFG y mi tutoir me impone que no se utilicen servidores ni Firebase(por ejemplo). He descubierto que por programación no estoy cogiendo bien la IP externa con la red de datos. Ahora el problema que tengo es obtener por programación esa IP.

Gracias por la ayuda, te iré contando.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Envío de información por IP de datos

Publicado por Israel (5 intervenciones) el 29/01/2018 03:04:05
Que te vaya bien con tu proyecto y espero puedas comentarme si solucionas el problema, saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar