2009-05-26 9 views
0

Je développe une application java en utilisant la bibliothèque jstun (hxxp: //jstun.javawi.de/), et je dois comparer mon ip public avec celui choisi par le noyau (adresse générique - hxxp: //java.sun.com/j2se/1.5.0/docs/api/java/net/DatagramSocket.html#DatagramSocket()) lorsque je crée un socket udp. Ce que je ne comprends pas, c'est que si mon adresse IP locale sur mon réseau est sous la forme 192.168.1.x, pourquoi ai-je une adresse IP comme 10.x.x.x?Comprendre les adresses locales assignées par le noyau sur une socket udp

Y a-t-il une raison particulière pour laquelle les deux sont totalement indépendants? si je n'était pas derrière un nat, le noyau lierait-il le socket à mon adresse publique?

merci beaucoup! asymétrique

+0

Y at-il une raison que vos liens sont hxxp: // et non http:// et rendu cliquable? – unwind

+0

bien sûr il y a une raison :) et c'est que je, en tant que nouvel utilisateur, ne peut pas poster des liens – asymmetric

Répondre

0

je ne ai pas mentionner une chose assez importante: que je développe pour Android, et en cours d'exécution mon code sur l'émulateur Android, ce qui explique la chose adresse 10.xxx ..

je devrais creuser plus profondément dans cela. . Merci pour l'aide!

pour ceux qui sont intéressés: hxxp: //developer.android.com/guide/developing/tools/emulator.html#networkaddresses

1

Pour un socket d'envoi, l'adresse IP source est déterminée par la table de routage hôte en fonction de l'adresse IP de destination; pour recevoir le socket l'adresse IP de destination est ce que vous obtenez. L'IP "publique" que vos pairs voient est l'adresse source sur le paquet de votre part, qui est réécrite par NAT pour être les adresses internes traduites.

Questions connexes