-------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

 

 

 

____________________________________________________
  IncrediMail - Email has finally evolved - Click Here