-------Original Message-------
Date: Freitag, 20. Juni
2003 12:29:23
Subject: Re:
[Python-de] Hilfe
Jens Mintel wrote: > Hallo, > > erstmal vielen Dank
für die vielen Antworten. > > Ich suche nach einer Lösung mir
die IP-Adresse des ppp interfaces per > E-Mail zu
übersenden.
So was sollte gehen:
#v+ import
commands print commands.getoutput("/sbin/ifconfig ppp0|grep
addr") #v-
> > Hier das nachfolgende script, was
leider ned richtig möchte. > > import smtplib > import
socket > fromaddr = "e-mailadresse" > password =
"passwort" > toaddrs = "e-mailadresse" > ip =
socket.gethostbyaddr(socket.gethostname()) > msg = ip > server
= smtplib.SMTP('mail.gmx.net') > #server.set_debuglevel(1) >
server.login(fromaddr, password) > server.sendmail(fromaddr,
toaddrs, msg) > server.quit() > > Wenn ich die msg
durch einen normalen Text ersetze klappt es wunderbar. > Nur wenn
ich mir die ip übersenden will bricht das script ab. > >
Woran liegt das? [...]
Daran, dass 'ip' kein String ist und
.sendmail() and dieser Stelle einen String erwartet. Entweder du
wandelst es mittels str() in einen String um, oder du ziehst aus der
Datenstruktur genau den String raus, den du willst: ip[2][0]. Das wird
aber wahrscheinlich nicht das gewünschte (die öffentliche IP-Adresse)
liefern, also wird vielleicht doch mein obiger Vorschlag mit ifconfig
eher zum Ziel führen.
--
Gerhard
_______________________________________________ Python-de
maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
---------------------------------
Wenns auch noch auf Windows laufen soll kannst du auch mal
>>>socket.gethostbyname_ex(gethostname())[2][-1]
probieren. gethostbyname_ex() liefert dir eine Liste aller eth und ppp
device Adressen. Bei mehr als einer ppp Verbindung muesstest du natuerlich
entsprechend den lezten Index ändern.
Gruss, Jochen
|