GoDaddy IP Güncelleyici

Daha önce şu yazımda, bu siteyi Raspberry Pi 3 üzerinde sunduğumu söylemiştim. Böyle bir şey için insanlar teknik sorunlarla karşılaşmamak için genelde statik IP alırlar ama TTNet’ ten statik IP almak aylık 15 lira demek. 🙂 GoDaddy’ den alınmış bir alan adınız varsa GoDaddy’ nin bize sunduğu API nimetinden faydalanıp aylık 15 liradan kurtulabiliriz. Python ile kodladığım bu minik yazılım, belirli periyotlarda (isteğe bağlı) IP kontrolü yapıp değişiklik varsa GoDaddy kayıtlarına ekleyip bize e-posta ve/veya Pushbullet ile bildirim yolluyor.

Bu minik yazılımı hazırlarken sıfır Python bilgisi ile başlayıp birazcık Python öğrenmem gerekti. Zevkli bir dilmiş bu Python, sanırım öğrenmeye devam edip grafik arayüz programlamaya kadar götüreceğim işi. 🙂 Tabii ki bu minik yazılımı hazırlarken daha önceden yazılmış kodlardan da faydalandım. Daha önce yazılmış kodlar ham haliyle işime yaramadığı  için epeyce değişiklik yapmam gerekliydi. Yani, aslında tamamen kendi ürünüm değil bu minik yazılım ama ilk Python deneyimim olduğu için yeri ayrı. 😀

Sanırım lafı fazla uzattım. 😀 Şimdi gelelim yazılımımıza.

 

Öncelikle şu bağlantıdan yazılımı indirelim:

https://drive.google.com/open?id=1w1dWQByNdI4DXjM1MtfhTiNFZJ_m3dcI

 

Peki nasıl kullanılır?

1- İndirdiğiniz zip dosyasını çıkarıp Raspberry Pi üzerinde bir yere konumlandırın, ben masaüstünde (Desktop) konumlandırdım.

 

2- mySettings.py dosyasında ilgili değişiklikleri yapalım. (Dosyanın içindeki açıklamalarda da neler yapılacağı yazıyor ama burada da anlatayım.)

#!/usr/bin/env python

SCRIPT_PATH="/where/is"
# Example: /home/pi/Desktop/godaddy

# Domains
domains=["yourdomain.com","sub1.yourdomain.com","sub2.yourdomain.com","sub3.yourdomain.com"]

# Godaddy Settings
# https://developer.godaddy.com/keys
# Create New API Key
# Environment: Production
gdkey="yourkey"
gdsecret="yoursecret"

# E-mail settings
emailnot=1 # E-mail notification 1 or 0 1=yes, 0=no
# Sender Adress
senderaddress = "yoursenderaddress@gmail.com"
senderpassword = "password"
# https://www.google.com/settings/security/lesssecureapps
# Open it.
# Notificaton Receiver Adress
recaddress = "youraddress@gmail.com"
# Mail Subject
mailsubject="Raspberry Warning"

#Pushbullet settings
# https://www.pushbullet.com/#settings/account
# Access Tokens -> Create Access Tokens
pushbulletnot=1 # Pushbullet notification 1 or 0 1=yes, 0=no
pbACCESS_TOKEN="yourkey"
pbMsgTitle="Raspberry Warning"

a- SCRIPT_PATH=”/where/is” satırında tırnak içine zip’ ten çıkardığınız dosyaların konumunu yazın.

 

b-
domains=[“yourdomain.com”,”sub1.yourdomain.com”,”sub2.yourdomain.com”] satırında, IP’ sinin güncellenmesini istediğiniz alan adlarını ve alt alan adlarını yazın.

 

c- gdkey=”yourkey” ve gdsecret=”yoursecret” satırlarında tırnak içine GoDaddy’ den aldığınız key ve secret değerlerini yazın.

Key ve secret değerlerinin nasıl alınacağını anlatmaya çalışayım. 🙂 GoDaddy hesabınıza giriş yaptıktan sonra şu bağlantıya gidin, devamını resimlerle anlatalım. 🙂

API Keys kısmına tıklayın.

Create New API Key‘ i tıklayın.

Resimdeki açıklamalara dikkat ettikten sonra Next‘ i tıklayalım.

Dediği gibi, Secret değeri bir daha gösterilmeyecek, Key ve Secret değerlerini alıp dosyamıza ekleyelim.

 

d- E-posta ile bildirim almak istiyorsanız emailnot=1 istemiyorsanız emailnot=0 şeklinde ayarlayın.
senderaddress = “yoursenderaddress@gmail.com” satırında tırnak içine e-posta gönderecek Gmail hesabının adresini yazın.
Not: E-postayı, Gmail SMTP ayarlarıyla göndereceğimiz için hesap kesinlikle Gmail olmalı.
senderpassword = “password” satırında tırnak içine e-posta gönderecek Gmail hesabının şifresini yazın.
Çok Önemli: Buraya yazdığınız Gmail hesabına giriş yaptıktan sonra şu bağlantıya tıklayıp ilgili ayarı açık konuma getirin.

recaddress = “youraddress@gmail.com” satırında tırnak içine IP değişikliğinin bildirilmesini istediğiniz e-posta adresini yazın.
mailsubject=”Raspberry Warning” satırında tırnak içine e-posta başlığını yazın ama Türkçe karakter kullanmayın.

 

e- Pushbullet ile bildirim almak istiyorsanız pushbulletnot=1 istemiyorsanız pushbulletnot=0 şeklinde ayarlayın.
Firefox’ a (ya da Chrome’ a) Pushbullet kurup hesap girişi yaptıktan sonra şu bağlantıdan Access Tokens‘ tan Create Access Tokens‘ a tıklayıp üretilen anahtarı pbACCESS_TOKEN=”yourkey” satırındaki tırnak içine ekleyin.
pbMsgTitle=”Raspberry Warning” satırında tırnak içine mesaj başlığını yazabilirsiniz.

 

3- Python dosyalarına (py uzantılı) çalışma izni verin, txt dosyalarına da herkes tarafından yazılma izni verin.

 

4- RUN.py dosyasını crontab dosyasının en sonuna aşağıdaki gibi ekleyin.

sudo crontab -e

*/30 * * * * python /home/pi/Desktop/godaddy/RUN.py >> /home/pi/Desktop/godaddy/LOGS.txt 2>&1 &

30 sayısı, dakikayı belirtiyor; her 30 dakikada bir çalışıyor. Görüldüğü üzere benim dosyalarım masa üstünde godaddy klasöründe, siz burayı dosyaları konumlandırdığınız yere göre düzenleyin.
Arada sırada LOGS.txt dosyasının içini silin ki gereksiz yere büyümesin dosya.