IP [Résolu]

didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 30 oct. 2007 à 10:37 - Dernière réponse : didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention
- 23 févr. 2008 à 19:47
Bonjour à tous.

J'ai réalisé une application Client/Serveur fonctionnelle.
Lorsque je lance le serveur sur un des ordinateurs du résau, je parviens à m'y connecter (si je suis sur le même réseau).

Donc mes questions sont les suivantes :
   + Comment est ce que je peux faire pour me connecter au serveur quelque soit l'ordinateur sur lequel il est ?
   + Comment est ce que ca fontionne ? 
         C'est à dire qu'il y a une adresse ip "générale" (par ex. 255.255.255.255) et une autre (qui correspond à un ordinateur du réseau (192.168.XXX.XXX)

merci.
Afficher la suite 

9 réponses

Répondre au sujet
the_wwt 177 Messages postés jeudi 5 octobre 2006Date d'inscription 16 janvier 2009 Dernière intervention - 30 oct. 2007 à 14:21
+3
Utile
Bonjour,
une adresse ip est censé être unique dans un réseau ( même local 192.168.x.x classe C) donc tu ne peux pas attribué une même adresse à plusieurs machines. Pour cela il existe les DNS (domain name server) qui font correspondre le nom d'une machine à son adresse ip.
Si ton réseau dispose d'un DNS essaye la commande DOS nslookup et tape le nom de ta machine -> il te renvoie une adresse ip.
En java pour récupérer l'adrsse d'une machine tu fais:

        InetAddress server = InetAddress.getByName("nomDuServer");

Sinon, tu es bloqué.
Cordialement,
Pierrick
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de the_wwt
the_wwt 177 Messages postés jeudi 5 octobre 2006Date d'inscription 16 janvier 2009 Dernière intervention - 30 oct. 2007 à 15:22
+3
Utile
Re,
bien non, il n'existe aucun autre moyen... C'est le principe même de la couche réseau une machine = une adresse IP. Si tu connais pas cette adresse IP tu ne peux pas communiquer avec cette machine. La couche service apporte la notion de nom de machine via les DNS. Mais si tu n'as pas de DNS associé à ton DHCP ( le serveur qui attribue une adresse IP a une machine lors de son démarage) tu es bloqué.
Pour revenir à ton problème, premièrement quel besoin as tu?
    --> Trouver l'adresse IP de ton serveur depuis une machine cliente -> ton serveur doit avoir une IP statique ou être enregistré auprès d'un DNS.
   --> Sinon trouve une machine intermediaire sur laquelle le serveur au démarage stocke son adresse IP. Les clientq lisent ce fichier et se connecte à la machine. Mais on revient au même problème avoir une IP statique dans ton code ( ou une propriété bien sur).
Tous les protocoles client-serveur utilise un de ces principes:
    -> Emule le fichier server.met qui liste les adresses IP des serveurs
    -> Bitorrent le serveur de tracker qui liste les clients
    --> HTTP les DNS pour trouver www.google.com
    --> etc...
J'espère avoir répondu a tes questions.
Cordialement,
Pierrick
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de the_wwt
the_wwt 177 Messages postés jeudi 5 octobre 2006Date d'inscription 16 janvier 2009 Dernière intervention - 20 févr. 2008 à 10:54
+3
Utile
Bonjour,
même question -> même réponse.
Si tu connais le nom de la machine et qu'un serveur dns peut te renvoyer son IP en fonction de ce nom, tu n'as pas de souci tu t'y connecte en ne donnant que le nom.
Ensuite ne fais pas de méli-melo entre adresse publique ( internet) et adresse privée ( intranet ).
Si tu connais la plage du réseau privée de la machine et le port d'écoute du serveur ( exemple 192.168.1.XXX), tu tests toutes les adresses IP ( ici 255  possibilités).
En ce qui concerne whatismyip.org cela te donne l'adresse publique ( donc pas en classe C 192.168.XXX.XXX) tu ne pourras rien en faire si ton serveur n'est pas directement sur internet, il te faudra passer par du NAT ( Network Adress Translation) qui permet de rediriger des requete venant d'un certain port sur tel machine du réseau local.
penches toi sur la doc sur le réseau en tapant ( réseau de classe C, NAT ... etc sur ton moteur de recherche préféré).
Cordialement,
Pierrick
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de the_wwt
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 30 oct. 2007 à 14:52
0
Utile
Bonjour.
Merci de ta réponse.

Lorsque je tape "nslookup", j'obtiens une adresse IP et un serveur par défaut.
Lorsque je tape le mon de ma machine, on m'indique que le serveur ne parvient pas à trouver ce nom. (comment ca se fait ? est ce parceque je n'ai pas de DNS ?)

J'ai également essayer avec java; mais rien ne s'affiche.

Existe t-il un autre moyen pour se connecter à un ordinateur depuis n'importe quel ordinateur (ex: 192.168.0.7 ==> XXX.XXX.XXX.XXX )

merci...
Commenter la réponse de didoux95
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 30 oct. 2007 à 15:22
0
Utile
J'ai re-essayé la commande

InetAddress server = InetAddress.getByName("me");
System.out.println(server.toString());

Ca m'affiche bien quelque chose, mais l'adresse de mon pc dans le réseau local (192.168.0.7) (j'ai lancé le serveur sur mon pc).

Qu'est ce que j'en fait de cette addresse si je veux me connecter depuis l'extérieur ? (il me semble que se n'est pas possible).

merci.
Commenter la réponse de didoux95
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 30 oct. 2007 à 15:43
0
Utile
En fait, j'instale un serveur sur une machine.
je voudrais pouvoir m'y connecter via son adresse ip.

Lorsque je lance le client et le serveur sur la même machine, je dis au client de se connecter sur "localhost" sur le port 123.
Lorsque je lance le client et le serveur sur le même réseau, je dis au client de se connecter sur la machine correspondante (par ex 192.168.0.5 sur le port 123).
Mais lorsque le client et le serveur n'ont "aucun points communs", je dis ... rien du tout : je peux pas ... :'(

merci..
Commenter la réponse de didoux95
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 20 févr. 2008 à 10:38
0
Utile
Slt.
J'aimerais bien me repencher sur ce problème (que je n'ai toujours pas résolu; ou du moins dont je n'ai pas compris le fonctionnement).
Est ce que tu pourrais m'en dire plus sur les moyens pour se connecter à un ordinateur situer dans un resau local (sur internet, pour ce sujet, je ne sais pas trop quoi chercher) ?
lorsque l'on connais :
   - l'adresse IP du réseau (celle qu'on obtient lorsque l'on va, par exemple, sur "www.whatismyip.org/")
   - (possibilité) le nom de la machine (lorsque l'on tape "hostname" dans la console DOS

merci beaucoup.
Commenter la réponse de didoux95
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 20 févr. 2008 à 12:38
0
Utile
Merci d'avoir répondu.

J'ai lus sur NAT et sur la classe C : http://fr.wikipedia.org/wiki/Network_address_translation et http://www.commentcamarche.net/internet/ip.php3 (je mets les liens, comme ça, ça poura servir à d'autres personnes).

Il se trouve que dans mon cas, le DNS ne trouve pas le nom de la machine (sauf lorsqu'il s'agit du nom de la machine hôte).

Comment pourrais-je connaître, par exemple, la plage de mon réseau privé (sous windows) ?

Ou si non, je viens de pensé à ça : au lieu que se soit le client qui démarre la connection avec le serveur, pourquoi ne pas faire l'inverse (le erveur essaye de se connecte à un certain nombre d'adresse pré-enregistrée) ? Dans ce cas la, je peux récupèrer toutes les info que je veux (puisqu'il s'agit de ma machine et de mon réseau). Quelles données doit-je fournir à mon serveur pour qu'il se connecte à mon pc (et comment les obtenir .. :s )?

PS1: ca à l'air si simple, mais c'est telement compliqué ... xD
PS2: vraiment désolé de poser toutes ces questions (surtout qu'elles se ressemblent plus ou moins)

merci bcp.
Commenter la réponse de didoux95
didoux95 845 Messages postés mardi 25 avril 2006Date d'inscription 1 août 2017 Dernière intervention - 23 févr. 2008 à 19:47
0
Utile
Bonjour.
Cest pour dire que je viens de comprendre xD
merci encore :p
Commenter la réponse de didoux95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.