Ein Raspi sagt seine IP Adresse

Wenn man einen Raspi als kleinen Server mal irgendwo in ein fremdes Netz hängen möchte, wäre es ja sehr hilfreich, wenn man auch seine (normalerweise ja dynamisch per DHCP zugeteilte) IP Nummer kennen würde. Nur wie kriegt man die aus dem kleinen Kästchen, wo doch erstmal keine Tastatur und kein HDMI- Monitor in der Nähe ist?

Aber zum Glück hat ein Raspi ja noch einen Kopfhörer- Ausgang, und mit etwas Software bekommt man da dann die IP- Nummer raus:

sudo apt-get install libttspico-utils

Ein Python script nach /usr/local/bin/sayIP.py:

/usr/local/bin/sayIP.py
#!/usr/bin/env python
# coding: utf-8
 
# install:
# sudo apt-get install libttspico-utils
 
 
# extended text input syntax: http://dafpolo.free.fr/telecharger/svoxpico/SVOX_Pico_Manual.pdf
 
import subprocess
from time import sleep
import socket
 
 
while(True):
	try:
		s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
		s.connect(("8.8.8.8",80)) #Google's public DNS server
		ipAddress=s.getsockname()[0]
		print(ipAddress)
		s.close()
		subprocess.call(['pico2wave', '--lang=de-DE', '--wave=/tmp/test.wav', '"'+ipAddress+'"'])
		subprocess.call(['aplay',  '/tmp/test.wav'])
		subprocess.call(['rm',  '/tmp/test.wav'])
	except:
		pass
	sleep(3)

dann kommt ans Ende der /etc/rc.local noch

python /usr/local/bin/sayIP.py &
exit 0

und fertig. Die Soundausgabe eignet sich übrigens auch gut als Einschlafhilfe :-)