środa, września 25, 2013

Raspberry Pi + no-ip.org ;-)

Mam nowy Internet w domu, fajny bo szybki (250 Mbps) ale niestety nie mam stałego IP....
Przez to moje Rasbperry Pi jest trudne do złapania...

Tu przychodzi z pomocą no-ip.org, dzięki któremu możemy mieć adres NaszaNazwa.no-ip.org.

Problem w tym, że co jakiś czas trzeba odnawiać adres IP.

Poszukałem po sieci i znalazłem skrypt w Pythonie do tego.
Całkiem fajny skrypt, ale nie podobało mi się to, że wysyłał username i password otwartym tekstem po HTTP.

Stąd stworzyłem swoją własną wersję, która wygląda tak:
import urllib2
import base64

myurl = "YOUR_NAME.no-ip.org"
username = "YOUR_USSERNAME_HERE"
password = "YOUR_PASSWORD_HERE"

web_page = urllib2.urlopen("http://iptools.bizhat.com/ipv4.php")
myip = web_page.read()

print "Your IP is " + myip + "\n"

update_url = "https://dynupdate.no-ip.com/nic/update?hostname=" + myurl + "&myip=" + myip

req = urllib2.Request(update_url)
req.add_header('Authorization', 'Basic '+base64.encodestring(username+":"+password).replace("\n",""))
resp = urllib2.urlopen(req)
content = resp.read()

print content

Jak widać używam urllib2 i base64, a cała komunikacja z serwerami No-IP odbywa się po HTTPS.
Dodatkowo nasze credentiale "lecą" w Base64 w nagłówku, a nie w request stringu, czyli nie wylądują w ich logu :-)

Później tylko dodajemy skrypt do crontaba by uruchamiał się powiedzmy co 30 minut i już wszystko powinno działać :-)

Podobne postybeta
Airly + Python + Oczyszczacz Powietrza = lepsze oddychanie ;-)
Wysyłamy pliki do Google Docs przy pomocy Go :-)
Raspberry Pi po ponad roku
Żenienie Todoist z Obsidian przy pomocy Pythona ;-)
Czasem człowiek musi napisać dekodowanie Base64 w JavaScript ;-)

Brak komentarzy:

Prześlij komentarz