Artikel verknüpft mit 'conky':
Link 09.11.10, 21:48:43

Öffentliche IP-Adresse per Fritz!Box auslesen

Ich bin eben im ubuntuusers-Wiki auf seinen schönen Trick gestoßen um eine Verbindung nach „draußen“ zu vermeiden, wenn man die öffentliche IP-Adresse wissen möchte. Bisher hab ich das immer mit Hilfe einer Webseite wie z.B. wieistmeineip.de erreicht, auch um die IP dann per Conky auf meinem Desktop anzeigen zu lassen.
Das ging mithilfe eines Shell-Skriptes so: #!/bin/bash # eigene öffentliche ip anzeigen wget http://checkip.dyndns.org/ -q -O - | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' und dann wurde das Skript noch durch Conky ausgeführt, in der .conkyrc stand also folgendes: ${execi 7200 ~/DATEINAME.sh} Aber irgendwie ist es doch ein bisschen blöd für so etwas triviales extra eine Internetseite kontaktieren zu müssen. Zudem ist man davon abhängig, dass die Seite ständig online ist. Wenn man eine Fritz!Box als Router verwendet geht es wesentlich einfacher, durch das Abrufen der Einstellungsseite der Fritz!Box (im Browser erreichbar unter fritz.box) und dem Herausfiltern der IP-Adresse, die dort sowieso angezeigt wird:wget ''http://fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=home&var:pagename=home'' -q -O - | grep -Eo ''\\<[[:digit:]]{1,3}(\\.[[:digit:]]{1,3}){3}\\>'' | grep -Ev "^0+\\." Dieser Einzeiler hat aber nur den gewünschten Effekt, wenn die Weboberfläche nicht passwortgeschützt ist, und das sollte sie aus Sicherheitsgründen unbedingt sein. Also muss eine andere Lösung her, und die arbeitet mit UPnP: curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /> </s:Body> </s:Envelope>" -s | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>' Das funktioniert auch mit Passwortschutz. Ab damit in eine Datei und wie gewohnt durch Conky ausführen lassen.
Da wir gerade bei Bash-Einzeilern im Zusammenhang mit der Fritz!Box sind, hier noch ein anderer netter Befehl. Um die IP-Adresse zu ändern genügt folgende Anweisung:curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d " "

tags:#fritzbox #ip #conky


Link 16.06.10, 18:45:47

Last.fm + Conky + ? = ♥

Screenshot ConkySeit einigen Versionen, beherrscht Conky auch das Abrufen von RSS-Feeds. Natürlich ist es recht unhandlich Conky als Feedreaderersatz zu verwenden, denn diese Funktion eignet sich viel mehr dazu nützliche Informationen statt ganzen Texten aus dem Internet auf den Desktop zu bringen. Als Beispiel sei hier Last.fm genannt, denn man kann sich nämlich ganz einfach verschiedene Daten über die gehörte Musik mit Conky anzeigen lassen:
Im Moment benutze ich den Befehl ${rss http://ws.audioscrobbler.com/1.0/user/$Username/recenttracks.rss 1 item_titles 10 } um mir die zehn letzten angehörten Titel mitteilen zu lassen. Die Parameter die mitgegeben werden sind folgenden: Die URL (einfach den eigenen Benutzernamen einsetzen), in welchem Abstand der Feed erneut abgerufen werden soll, welche Information genau extrahiert werden soll und wieviele Einträge angezeigt werden sollen.
Erstmal zur URL: Dass der eigene Benutzername eingesetzt werden muss sollte klar sein, aber statt der Datei "recenttracks.rss" kann man auch ein paar andere Dateien abrufen, die unterschiedliche Informationen enthalten. Hier eine Liste aller möglichen und sinnvollen Angaben: (Die Namen sollten selbsterklärend sein)
recenttracks
systemrecs
eventsysrecs
Ab sofort ist es also möglich mit einem Blick auf den Systemmonitor die zuletzt gehörten Titeln, die empfohlenen Künstler oder die empfohlenen Konzerte aufgelistet zu bekommen. Der zweite Parameter bedarf keiner Erklärung, genau wie der letzte. Um den dritten Parameter verstehen zu können sollte man die grobe Struktur einer RSS-Datei kennen, die ist nämlich aus verschiedenen Items aufgebaut, welche mit Tags genauer beschrieben werden (z.B: Titel, URL oder Autor) in unserem Fall extrahieren wir mit item_titles den Titel des Elements und mit der 10 sagen wir Conky, dass er das bitte schön nur mit den 10 ersten Elementen machen soll.
Natürlich gibt es noch viele andere Dienste die einige Daten über RSS-Feeds oder eine API anbieten, z.B. Feedburner oder Twitter. Mit letzterem ist das oben genannte Vorgehen leider nicht möglich, da die RSS-Feeds für die persönliche Timeline eine Authentifizierung benötigen und dieses Feature ist (soweit ich weiss) noch nicht in Conky eingebaut.

tags:#conky #last.fm #rss


Link 27.02.10, 19:21:27

Conky: Feedburner Statistiken auf dem Desktop ausgeben

Conky ist ein Systemmonitor der mit vielen Skripten erweitert werden kann. Es gibt bereits Skripte die einem die aktuelle IP-Adresse anzeigen oder über das Wetter informieren. Im Folgenden zeige ich wie man seine Feedburnerstatistiken in Conky einbinden kann.

Das Pythonskript

#!/usr/bin/env python # -*- coding: utf-8 -*- # (C) 2009 HalOtis Marketing # written by Matt Warren # http://halotis.com/ # modified by ucn # http://unrealstuff.bplaced.de import urllib2 try: from xml.etree import ElementTree except ImportError: from elementtree import ElementTree #add a dates=YYYY-MM-DD,YYYY-MM-DD argument to the url to get all data in a date range url_prefix = 'https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' URIs = ['unrealstuff',] def print_feedburner(content): tree = ElementTree.fromstring(content) for feed in tree.findall('feed'): for entry in feed.findall('entry'): print 'Reach:', entry.get('reach'), 'Circulation:', entry.get('circulation'), 'Hits:', entry.get('hits') if __name__=='__main__': for uri in URIs: content = urllib2.urlopen(url_prefix + uri).read() print_feedburner(content)
Dieses Skript habe ich von Matt Warren, ich habe lediglich den Quelltext ein kleines bisschen modifiziert.
Der Code wird in der Datei ~/conky/feedburner.py abgespeichert. Die Zeile URIs = ['unrealstuff',] muss vorher noch angepasst werden, statt unrealstuff fügt ihr den letzten Teil eurer Feedurl ein: http://feeds.feedburner.com/beispiel. An dieser Stelle können durch ein Komma getrennt auch mehrere Feeds angegeben werden.
Jetzt sollte man noch das Skript auf Funktionstüchtigkeit testen, einfach python ~/.conky/feedburner.pyin der Kommandozeile ausführen. Die Ausgabe sollte ungefähr so aussehen: Reach: 0 Circulation: 20 Hits: 188

Das Skript einbinden

An der gewünschten Stelle fügt man nun in der .conkyrc die Zeile ${exec python ~/.conky/feedburner.py} ein. Anschließend Conky neu starten und voilà:

http://unrealstuff.bplaced.de/uploads/27-02-2010-1.png


tags:#conky #open source #python


Link 18.11.09, 21:50:04

Conky - Systemmonitor

Was Conky genau ist und macht erfahrt ihr hier, ich stelle hier meine Einstellungen vor.
Bei mir sieht das ganze im Moment so aus:

http://unrealstuff.bplaced.de/uploads/18-11-2009-001.png


Den Code gibts hier, einfach wie im Wikiartikel beschrieben abspeichern.
tags:#conky #open source #linux