[Python-de] Hilfe

Gerhard Häring gh at ghaering.de
Fre Jun 20 13:29:29 EDT 2003


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