OVH Cloud OVH Cloud

Récuperer son IP

8 réponses
Avatar
thiebaut
Bonjour,
Je suis débutant,
je cherche à faire un script qui récupère l'ip local d'une machine pour
me l'envoyer par email.
je sais envoyer un email par contre je ne trouve pas une fonction
(librairie générique XP / Linux ) qui me renvois l'adresse local de ma
machine genre
getIp ...

pouvez vous me guider , avec google je tourne en rond ...

olivier

8 réponses

Avatar
Jerome
thiebaut wrote:
Bonjour,
Je suis débutant,
je cherche à faire un script qui récupère l'ip local d'une machine pour
me l'envoyer par email.
je sais envoyer un email par contre je ne trouve pas une fonction
(librairie générique XP / Linux ) qui me renvois l'adresse local de ma
machine genre
getIp ...

pouvez vous me guider , avec google je tourne en rond ...

olivier


Bonjour

Trouvé sur le site de python, module socket
http://www.python.org/doc/1.5.2p2/lib/module-socket.html


gethostname ()
Return a string containing the hostname of the machine where the
Python interpreter is currently executing. If you want to know the
current machine's IP address, use gethostbyname(gethostname()).


Testé sous linux ça fonctionne.

Jérôme

Avatar
Do Re Mi chel La Si Do
Bonjour !


Attention à un petit détail : quelle adresse IP veut-on trouver ?

Si le poste est connecté à Internet, il y a l'adresse IP "interne" (dans le
réseau local), et l'adresse IP "externe", visible depuis Internet. En fait
l'adresse IP "externe" est celle du routeur, s'il y a un routeur ; s'il y a
un simple modem Internet, elle est prise en charge par l'ordinateur.

Pour l'adresse interne, tu peux utiliser :
import socket
print socket.gethostbyname(socket.gethostname())

Pour l'adresse externe, le plus simple, c'est de wrapper un site qui renvoie
l'adresse.
Par exemple : http://www.showmyip.com
En version XML : http://www.showmyip.com/xml


@-salutations

Michel Claveau
Avatar
Olivier Ravard
"Jerome" a écrit dans le message de news:
di2s8t$u0d$
thiebaut wrote:
Bonjour,
Je suis débutant,
je cherche à faire un script qui récupère l'ip local d'une machine pour
me l'envoyer par email.
je sais envoyer un email par contre je ne trouve pas une fonction
(librairie générique XP / Linux ) qui me renvois l'adresse local de ma
machine genre
getIp ...

pouvez vous me guider , avec google je tourne en rond ...

olivier


Bonjour

Trouvé sur le site de python, module socket
http://www.python.org/doc/1.5.2p2/lib/module-socket.html


gethostname ()
Return a string containing the hostname of the machine where the
Python interpreter is currently executing. If you want to know the current
machine's IP address, use gethostbyname(gethostname()).



Et comment obtient-on l'adresse MAC ?

O.R.


Testé sous linux ça fonctionne.

Jérôme



Avatar
Jerome
Olivier Ravard wrote:

Et comment obtient-on l'adresse MAC ?


Je ne pense pas qu'il existe un module standard et multi-plateforme...


sous windows il y a le module ctypes apparement (via activestate)
ctypes.windll.wsock32.inet_addr(hostip)

sous linux je ne connais pas, je ferai un appel système à ifconfig et
une analyse du rendu de la commande, comme un barbare.


O.R.




Jérôme

Avatar
Do Re Mi chel La Si Do
Re

Pour l(es) adresse(s) MAC, un simple arp -a devrait donner ça, non ?

@-salutations

Michel Claveau
Avatar
thiebaut
Bonjour,
Je suis débutant,
je cherche à faire un script qui récupère l'ip local d'une machine pour
me l'envoyer par email.
je sais envoyer un email par contre je ne trouve pas une fonction
(librairie générique XP / Linux ) qui me renvois l'adresse local de ma
machine genre
getIp ...

pouvez vous me guider , avec google je tourne en rond ...

olivier
Merci pour vos réponse je sui en train de tester un peu tout ..


olivier

Avatar
Do Ré Mi Chel La Si Do.
Re-re

Là, j'ai m...
En fait, un simple IPconfig /all donne toutes les adresses MAC d'un
ordinateur.

@-salutations

Michel Claveau
Avatar
thiebaut
Bonjour,
Je suis débutant,
je cherche à faire un script qui récupère l'ip local d'une machine pour
me l'envoyer par email.
je sais envoyer un email par contre je ne trouve pas une fonction
(librairie générique XP / Linux ) qui me renvois l'adresse local de ma
machine genre
getIp ...

pouvez vous me guider , avec google je tourne en rond ...

olivier
Conclusion :


script essai :



#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import smtplib,socket,os,sys
import time

from_addr = ""
to_addrs = [""]
date = time.ctime(time.time())

LinuxIP="/sbin/ifconfig"
Win32IP="ipconfig /all"
print socket.gethostname()
if sys.platform == "win32":
fichier=os.system(Win32IP)
else:
fichier=os.system(LinuxIP)

ip = socket.gethostbyname_ex(socket.gethostname())
print 'Current IP : ' + str(ip)
print fichier

msg = """From: "Moi"
Subject: IP
Date: %s
To: ""
X-Mailer: Bip bip (2.733)

IP %s
""" %(date,ip)

s = smtplib.SMTP('localhost')

s.set_debuglevel(1)

s.sendmail(from_addr, to_addrs, msg)

s.quit()

Fonctionne bien sous XP les adresses sont correctes, sous linux je n'ai
que localhost

Merci à tous