IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

IP d'un serveur ?


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut IP d'un serveur ?
    Bonjours j'ai tiré un script d'un serveur et d'un client en python du cour de Gérard Swinnen les voici :

    Script du serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    # -*- coding: Latin-1 -*-
     
    # Définition d'un serveur réseau rudimentaire
    # Ce serveur attend la connexion d'un client, pour entamer un dialogue avec lui
     
    import socket, sys
     
    HOST = '127.0.0.1'
    PORT = 50000
     
    # 1) création du socket :
    mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # 2) liaison du socket à une adresse précise :
    try:
    	mySocket.bind((HOST, PORT))
    except socket.error:
    	print "La liaison du socket a l'adresse choisie a echoue."
    	sys.exit()
     
    while 1:
    	# 3) Attente de la requête de connexion d'un client :
    	print "Serveur pret, en attente de requetes ..."
    	mySocket.listen(5)
    	# 4) Etablissement de la connexion :
    	connexion, adresse = mySocket.accept()
    	print "Client connecte, adresse IP %s, port %s" % (adresse[0], adresse[1])
     
    	# 5) Dialogue avec le client :
    	connexion.send("Vous etes connecte au serveur STUFFY DEVS. Envoyez vos messages.")
    	msgClient = connexion.recv(1024)
    	while 1:
    		print "Client =>", msgClient
    		if msgClient.upper() == "FIN" or msgClient =="":
    			break
    		msgServeur = raw_input("Serveur => ")
    		connexion.send(msgServeur)
    		msgClient = connexion.recv(1024)
     
    	# 6) Fermeture de la connexion :
    	connexion.send("Au revoir !")
    	print "Connexion interrompue."
    	connexion.close()
     
    	ch = raw_input("<R>ecommencer <T>erminer ? ")
    	if ch.upper() =='T':
    		break
    Script du client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    # -*- coding: Latin-1 -*-
     
    # Définition d'un client réseau rudimentaire
    # Ce client dialogue avec un serveur ad hoc
     
    import socket, sys
     
    HOST = '127.0.0.1'
    PORT = 50000
     
    # 1) création du socket :
    mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # 2) envoi d'une requête de connexion au serveur :
    try:
    	mySocket.connect((HOST, PORT))
    except socket.error:
    	print "La connexion a echoue."
    	sys.exit()
    print "Connexion etablie avec le serveur."
     
    # 3) Dialogue avec le serveur :
    msgServeur = mySocket.recv(1024)
     
    while 1:
    	if msgServeur.upper() == "FIN" or msgServeur =="":
    		break
    	print "Serveur =>", msgServeur
    	msgClient = raw_input("Client => ")
    	mySocket.send(msgClient)
    	msgServeur = mySocket.recv(1024)
     
    # 4) Fermeture de la connexion :
    print "Connexion interrompue."
    mySocket.close()
    Donc mon serveur et sur le même ordi que mon client donc j'ai pour IP celui de l'ordi "127.0.0.1" (normalement ce sont les IP locaux) donc a ce stade tout marche maintenant je vaudrait placer mon serveur sur un ordi puis le client sur un autre qu'el ip doije mettre et comment le trouver

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 851
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 851
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par stuffy Voir le message
    Bonjours j'ai tiré un script d'un serveur et d'un client en python du cour de Gérard Swinnen les voici :

    Script du serveur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    # -*- coding: Latin-1 -*-
     
    # Définition d'un serveur réseau rudimentaire
    # Ce serveur attend la connexion d'un client, pour entamer un dialogue avec lui
     
    import socket, sys
     
    HOST = '127.0.0.1'
    PORT = 50000
     
    # 1) création du socket :
    mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # 2) liaison du socket à une adresse précise :
    try:
    	mySocket.bind((HOST, PORT))
    except socket.error:
    	print "La liaison du socket a l'adresse choisie a echoue."
    	sys.exit()
     
    while 1:
    	# 3) Attente de la requête de connexion d'un client :
    	print "Serveur pret, en attente de requetes ..."
    	mySocket.listen(5)
    	# 4) Etablissement de la connexion :
    	connexion, adresse = mySocket.accept()
    	print "Client connecte, adresse IP %s, port %s" % (adresse[0], adresse[1])
     
    	# 5) Dialogue avec le client :
    	connexion.send("Vous etes connecte au serveur STUFFY DEVS. Envoyez vos messages.")
    	msgClient = connexion.recv(1024)
    	while 1:
    		print "Client =>", msgClient
    		if msgClient.upper() == "FIN" or msgClient =="":
    			break
    		msgServeur = raw_input("Serveur => ")
    		connexion.send(msgServeur)
    		msgClient = connexion.recv(1024)
     
    	# 6) Fermeture de la connexion :
    	connexion.send("Au revoir !")
    	print "Connexion interrompue."
    	connexion.close()
     
    	ch = raw_input("<R>ecommencer <T>erminer ? ")
    	if ch.upper() =='T':
    		break
    Script du client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    # -*- coding: Latin-1 -*-
     
    # Définition d'un client réseau rudimentaire
    # Ce client dialogue avec un serveur ad hoc
     
    import socket, sys
     
    HOST = '127.0.0.1'
    PORT = 50000
     
    # 1) création du socket :
    mySocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     
    # 2) envoi d'une requête de connexion au serveur :
    try:
    	mySocket.connect((HOST, PORT))
    except socket.error:
    	print "La connexion a echoue."
    	sys.exit()
    print "Connexion etablie avec le serveur."
     
    # 3) Dialogue avec le serveur :
    msgServeur = mySocket.recv(1024)
     
    while 1:
    	if msgServeur.upper() == "FIN" or msgServeur =="":
    		break
    	print "Serveur =>", msgServeur
    	msgClient = raw_input("Client => ")
    	mySocket.send(msgClient)
    	msgServeur = mySocket.recv(1024)
     
    # 4) Fermeture de la connexion :
    print "Connexion interrompue."
    mySocket.close()
    Donc mon serveur et sur le même ordi que mon client donc j'ai pour IP celui de l'ordi "127.0.0.1" (normalement ce sont les IP locaux) donc a ce stade tout marche maintenant je vaudrait placer mon serveur sur un ordi puis le client sur un autre qu'el ip doije mettre et comment le trouver
    Dans ton client tu inscrits l'adresse IP de ton serveur que tu pourras trouver sur ce dernier en tapant la commande "ifconfig -a" si t'es sous Linux ou "ipconfig /all" sous zindow.
    Ton serveur tu n'y touches pas, il n'a pas besoin d'adresse. Je pense même que tu pourrais mettre l'adresse "0.0.0.0", ça marcherait aussi...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Si jamais tu connais le nom de la machine (son hostname), la classe socket propose une méthode pour en déterminer l'adresse IP.
    En substance, c'est quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ip = socket.getaddrbyhost(nom_de_machine)
    Mais sans certitudes (je n'ai pas d'environnement Python ici et j'ai plutôt l'habitude de faire l'inverse).
    Toujours sans certitude, je pense qu'il existe aussi une méthode pour ouvrir une socket directement avec le hostname (sans avoir à passer par l'adresse IP).

    J'ai l'impression que tu te posais la question, donc je précise encore un petit détail : a priori, le client ne peut pas trouver tout seul le serveur sans qu'on lui fournisse une adresse (IP ou hostname).

    EDIT: J'ei trouvé ce lien qui traite de la même problématique que toi je pense : http://www.velocityreviews.com/forum...of-a-host.html

  4. #4
    Membre confirmé Avatar de stuffy
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 31

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 70
    Par défaut
    pour ce qui est de trouver mon ip je n'ai pas bien saisi ou placer ipconfig/all si c'est dans mon script ou dans une console quelconque

    la methode d'alban ma l'air efficace mai comment obtenir le nom de l'ordi je pense que sous linux c'est les noms monnoms-laptop... mais sous windows

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Sous Linux comme sous Windows, tu obtiens le hostname en tapant la commande dans une console :

  6. #6
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  2. Langage le mieux adapté pour application client serveur ?
    Par guenus dans le forum Débats sur le développement - Le Best Of
    Réponses: 4
    Dernier message: 17/06/2002, 15h46
  3. couper une connection avec un serveur corba
    Par pons dans le forum CORBA
    Réponses: 3
    Dernier message: 31/05/2002, 10h11
  4. [Kylix] IP d'un serveur;....
    Par yopziggy dans le forum EDI
    Réponses: 16
    Dernier message: 24/05/2002, 09h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo