Mert Sarac

Developer, Entrepreneur, Geek

CloudFlare ile Sabit IP Olmadan Uzaktan Bağlantı

Uzaktan bilgisayarınıza bağlanmak istediğinizde aslında bunun için sabit IP almanıza gerek yok. CloudFlare kullanarak bilgisayarınıza, DVR cihazınıza, IP kameranıza, kısaca evinizdeki ağda IP üzerinden çalışan ne varsa uzaktan bağlanabilirsiniz. CloudFlare neymiş diyenleri öncelikle bu yazıya alalım.

Bunun için CloudFlare'in Dynamic DNS özelliğini kullanıyoruz.

Adım 1: DNS Kaydı Oluşturma
CloudFlare'e giriş yaptıktan sonra DNS sekmesinden yeni bir DNS kaydı oluşturuyoruz. Bu sırada Type olarak A, Name ve IP olarak istediğiniz bir değeri verebilirsiniz. Buradaki IP bilgimiz otomatik güncelleniyor olacak.


Adım 2: API Key Oluşturma
My Settings sayfasının aşağısında API Key başlıklı bölüme gelerek Global API Key'in yanındaki View API Key butonuna basarak API Key'i not alıyoruz.


Adım 3: API ile IP Güncelleme
Bunun için buradan yararlanarak küçük bir console uygulaması ile güncellemeyi kendiniz de yapabilirsiniz. Ancak Oğuzhan Yılmaz tarafından Github'da yayınlanan Dynogo bu işi hali hazırda yaptığı için bunu da kullanabilirsiniz. Buradan Dynogo'nun en güncel versiyonunu indirip C:\Program Files\Dynogo\ klasörüne kopyalıyoruz.


Adım 4: Scheduled Task Oluşturma
Dynogo, scheduled task olarak tanımlandığında her çalıştığında sizin dış IP adresinizi alarak bunu CloudFlare API üzerinden güncelliyor olacak. Bunu tanımlamak için Control Panel > Administrative Tools > Task Scheduler yolunu izleyerek Task Scheduler'ı başlatıyoruz.

Sağdaki menüden Create Task diyoruz ve karşımıza gelen pencereyi aşağıdaki gibi dolduruyoruz.


Ardından Triggers sekmesine gelip aşağıdan New butonuna basıyoruz ve buradaki bilgileri de aşağıdaki gibi dolduruyoruz.


Ardından Actions sekmesine gelip New butonuna basıyoruz ve Program/script bölümünden Dynogo'yu seçiyoruz.
Argument olarak aşağıdaki gibi CloudFlare bilgilerimizi veriyoruz.

-email=eposta@adresiniz.com -domain=alanadiniz.com -name=dnszoneadiniz -token=cloudflareapikey


Ardından Conditions sekmesine gelip "Start only if the following network connection is available" seçeneğini işaretliyoruz ve böylece Internet bağlantısı olmadığında task'in çalışmasını engelliyoruz.


Bunun ardından OK dediğimizde Windows şifremizi giriyoruz ve task'i kaydediyoruz.


İşlemimiz bu kadar! Artık dış IP adresimizi belirttiğimiz subdomain'e vermiş olduk. Modem ve bilgisayarımızdaki Firewall ayarlarından gerekli port yönlendirme işlemlerini yaptığımızda istediğimiz protokolden bilgisayar ve ev ağımıza erişebiliriz.

Faydalı olması dileğiyle,
Mert

Siz, yazılımın birimi nedir bilir misiniz?

Bu kez pek yapmadığım bir şey yapıp alıntı bir yazı paylaşacağım. Garip bir ülkede yaşıyoruz. Hatta olması gerektiği gibi olmayan şeylerin sayısı çok olunca biz buna "girişimciler için muhteşem bir fırsat" diyoruz. Aşağıda paylaşacağım hikaye 1989 - 2004 yılları arasında Netaş'ın Ar-Ge Direktörlüğünü yürüten Ali Akurgal'a ait. Çok uzatmadan hikayete geçmek istiyorum.

Siz, yazılımın birimi nedir bilir misiniz?
Metre. Evet metre. Neden metredir bilir misiniz?
Anlatayım.

1992 yılında, yani topu topu 20 yıl önce, Netaş’ta ilk yazılım ihracatını gerçekleştirdik. Hazırlanan bir yazılım paketini; tuşa bastık, o zaman internet falan yok, çatıdaki çanak marifeti ile, vallahi de billahi de müthiş bir hız olan 128 kb/s ile, İngiltere’ye uydu üzerinden yolladık. Faturayı da pullu posta ile yolladık. 2 Milyon dolar bankaya geldi, kasaya koyduk.

Aradan 3-4 ay geçti, vergi memurları geldiler. Dediler ki, “siz bir fatura yollamışsınız, 2 milyon dolar”. “Evet” dedik. “Bu para ödenmiş” dediler. “Evet” dedik. “Ama mal çıkışı yok, bu hayali ihracat” dediler!

Bunun üzerine vergi memurlarını Ar-Ge’ye aldık, bir bilgisayarın başına oturttuk.

“Şu ‘Enter’ tuşuna basar mısınız” dedik. Biri bastı. Sonra “ne oldu” diye sordu. “300 bin dolarlık ihracat yaptınız, bunun da faturasını yollayacağız, o da ödenecek” dedik. Adam suça ortak olmuş olduğu için çok kötü oldu. Sonra yazılım nasıl yazılır, uydu bağlantısı nedir, bu ne kadar para eder bunları gezdirip gösterip anlattık.

Adamlar “çok iyi anladık ama mal çıkışı olması lazım, mevzuat böyle” dediler. Bunun üzerine dedik ki: “Biz bu yazılımı banda kaydedelim onu yollayalım”. Adamlar bir çözüm bulmuş olmanın sevinci ile “tamam dediler, kaydedin yollayın”.

İhraç ettiğimiz yazılımın kaydı iki makara etti. Bunlar paketlendi ve gümrük komisyoncusuna verildi. Komisyoncu, bunları gümrüğe götürdü ve ihracat işlemine başladı. Gümrük memuru, işlemi yapmış yapmış ve bir noktada sormuş: “Tırlar nerede?”

Komisyoncu da “TIR MIR yok hepsi bu iki zarf” demiş, masanın üzerindeki teyp bantlarını göstermiş. Gümrük memuru “bu iki zarf 2 Milyon dolar etmez, ben bu işlemi yapamam” demiş, bırakmış.

Mahkemeye gidildi, bilirkişi heyeti kuruldu, bizim o iki makarada ki yazılımın 2 Milyon dolar edip etmeyeceğini inceledi. Neyse ki, 2 Milyon dolar eder dediler de hayali ihracattan kurtulduk.

Bu sefer, aynı komisyoncu, aynı gümrük memuruna aynı iki makarayı “2 Milyon dolar eder mahkeme kararı” ile götürüp işlemi yeniden başlattı. Ancak, gene işlem sırasında, ihraç malının birim fiyatı, miktarı ve toplam fiyatının girilmesi gerekiyor. Mevzuat öyle. Ne yapsınlar, iş daha uzamasın diye bakmışlar zarfta teyp bandı var, bir makarada kaç metre bant vardır diye kestirmişler, makarası 1.000 metreden 2.000 metre yazılım ihraç etmiş olmuşuz.

Yaaa, yazılımın birimi metre. İşte böyle.

Internet of Things Nedir?


İlk kez 1999 yılında MIT Auto-ID Labs'de Kevin Ashton tarafından ortaya atılan Internet of Things (kısaca IoT) yıllardır insanlar tarafından kullanılan Internet'in fiziksel cihazlara, nesnelere erişen halidir. Türkçeye "Nesnelerin Interneti" şeklinde çevirebileceğimiz IoT tavanınızdaki ampulden mutfağınızdaki buzdolabına kadar her nesnenin Internet'e erişebildiği ve her nesnenin kendine özgü API'lar üzerinden çeşitli hizmetlerini dışarıdan erişilebilir hale getirdiği, böylece nesnelerin birbirlerini kontrol edebildiği bir dünya hayal ediyor.

Hali hazırda Facebook, Twitter, Instagram gibi siteler harici kaynaklara API ile veri erişimi sağlamakta. "Facebook ile Bağlan" bu erişimin en güzel örneklerinden biri. Peki bu API'ları tek bir platformda bir araya getirip birbirlerini kontrol edecek hale getirebilir miyiz? Evet, yapabiliriz. IFTTT şu an API sunan her şey için bu hizmeti sunmaya çabalıyor. Daha iyi bir örnek vermek gerekirse, "telefonumda bir fotoğraf çektiğimde bunu OneDrive'da X klasörüne at" şeklinde komutlar tanımlayabiliyorsunuz. Evinizdeki termometre API sağlıyor olsaydı "odadaki sıcaklık 25°C'yi geçtiğinde bana SMS gönder" gibi komutlar da tanımlayabiliyor olacaktınız. Basitçe açıklayacak olursak IoT, termometrenize bu altyapıyı getirmeyi amaçlıyor.

IoT ile hayatımızda neler değişecek?
Aslında değişim çoktan başladı. Philips Hule Light, Nest gibi teknolojiler "smart home" konseptini hayatınıza yerleştirmek için hazırda bekliyor. Önümüzdeki 10 yıl içerisinde üretilecek elektronik cihazların tamamına yakınının kendiliğinden IoT desteği sunacağını söylemek pek de güç değil. Şu an lojistik, belediyecilik ve ev güvenliği gibi konularda hızla yaygınlaştığı görülen IoT günlük rutinlerimizi baştan aşağıya değiştiriyor olacak. Bu fişte unuttuğunuz ütü için 50 km yolu geri dönmemenizi sağlayacak avantajlar getirebileceği gibi güvenlik unsurları dikkatli kurgulanmazsa salonunuzdaki ampulün hacklenmesine kadar varabilecek bir değişiklik.

Önünde ne gibi engeller var?
En ciddi konulardan birisi hali hazırda 10 milyar civarında cihazın Internet'e bağlı olması ve IPv4'ün hala yok olmaması. Tahminlere göre 2020 yılına gelindiğinde IoT ile 50 milyar cihaz Internet'e erişiyor olacak. Bu denli ciddi bir değişim için IPv6'ya geçişin hızlanması şart. Bunun dışında az önce bahsettiğimiz gibi güvenlik de bir diğer sorun. Cihazların birbirleriyle nasıl iletişime geçeceği konusu halen bir standarta bağlanmadığı için kullanılan protokollerde yapılacak hatalar ciddi riskleri beraberinde getirebilir. Internet of Things'e köstek olan son şey de maliyetler. Ciddi rekabet içeren pek çok sektöre giriş yapacak olan IoT öncelikle kolay değişebilecek yerlerden başlamak zorunda.

Maliyetler nasıl düşer?
"Maker" olarak adlandırdığımız "kendi cihazını kendi yapan insan" diye açıklayabileceğimiz bir kitle var. Son 1 - 1.5 yıldır ben de bu akıma dahil olup pek çok şeyi kendim yaptım. Arduino, Intel Galileo ve Intel Edison gibi cihazlar makerların önünü açmakta ve bu akımı kuvvetlendirmekte. Günümüzde temel elektronik ve temel yazılım bilgisiyle pek çok şeyi yapabilmek mümkün. Ancak ne yazık ki ülkemizde ne temel elektronik bilgisine ne de temel yazılım bilgisine halen kolay kolay rastlayamıyoruz. Aşağıda Obama'nın anlattığı gibi akımları oluşturmakta geç kalıyoruz, kaybeden taraf oluyoruz.


Bugüne kadar neler yaptın?
Geçtiğimiz 1.5 yıl içinde Arduino ve Intel Galileo kullanarak evimdeki pek çok şeyi otomatize ettim. Bir kısmını Arduino kategorisinde sizlerle de paylaştım. Bu kategori biraz havada kaldı ama artık yapacağım projeleri baştan sona paylaşıyor olacağım. Basit bir blink uygulamasıyla başlayarak şu ana kadar aşağıdaki projeleri tamamladım:

  1. Oyuncak Araba Kontrolü: Yıllardır bir köşede bekleyen uzaktan kumandalı oyuncak arabamın tüm devrelerini söktüm. Motor bağlantılarını Arduino'ya aktardım ve Arduino'ya Wi-Fi ile bağlantı imkanı sağladım. Windows Phone'dan Wi-Fi bağlantısıyla oldukça geniş bir menzilde arabaya bağlanabiliyorum. Telefondaki accelerometer'ı kullanarak ileri-geri / sağ-sol kontrollerini yönetebiliyorum.
  2. Dijital Fotoğraf Çerçevesi: Bozulan bilgisayarımdan söktüğüm LCD ekranı Raspberry Pi'ye bağlayıp Dijital Fotoğraf Çerçevesine dönüştürdüm. Tüm projenin bana olan maliyeti 105 ₺ olan bu çerçeve, piyasada 60 ₺ ile 300 ₺ arasında satılan tüm çerçevelerden daha fazla özellik sağlıyor. (1366x768 çözünürlük, 11" ekran, Internet bağlantısı ile Facebook ve Instagram'dan fotoğraf gösterebilme, Azure'da host ettiğim yönetim paneli ile fotoğrafları bilgisayardan seçebilme, USB ve MicroSD'den fotoğraf ve video oynatabilme ve YouTube videolarını oynatabilme gibi özellikler sağlıyor.)
  3. Beni Algılayan Oda Parfümü: Evde uzun yıllardır kullandığım Air Wick oda parfümüne yaptığım 8 ₺'lik bir sensör ilavesi ile artık ben odada yokken parfüm sıkılmıyor.
  4. Otomatik Perde Kontrolü: Odamda kullandığım stor perdeye eklediğim küçük bir elektrik motoru, Arduino ve ışık sensörüyle dışarıdan gelen ışık seviyesi arttığında perdenin kapanmasını, azaldığında açılmasını sağlayabiliyorum. Aynı zamanda ışıktan bağımsız şekilde telefonumdan da kontrol edebiliyorum. Bu projenin bana olan toplam maliyeti 70 ₺.
  5. Uzaktan Işık Kontrolü: Evimin salonunda uyguladığım bu sistemde Intel Galileo ve röle adı verilen, dijital olarak kontrol edilebilir anahtar mantığında çalışan bir devre kartı kullandım. Ethernet ile Internet'e açtığım Galileo üzerinden röle'nin hangi anahtarı açıp kapatacağına Azure üzerinden karar verebiliyorum. Salondaki dört avizenin anahtarını da bu rölelere bağladığım için ışıkları evde olsam da olmasam da dilediğim gibi kontrol edebiliyorum. Aynı Intel Galileo'yu boşta kalan portları sayesinde aşağıdaki projemde de kullandığım için maliyetini ikiye bölersek toplamda 100 ₺'ye mal ettim.
Daha sayabileceğim irili ufaklı pek çok proje mevcut fakat en çok işime yarayanlar bunlar. Blogumu takip etmeye devam ederseniz yakında bu kategori altında bu tür projeleri nasıl yaptığımı, yaparken ne gibi zorluklarla karşılaştığımı sizlere aktarmaya çalışacağım.