Uzak bağlantı için gerekli olanlar

Başlatan ds01, 11 Mayıs 2017, 17:16:13

ds01

İyi günler ben yazdığım c# programı ile  başka bir şehirdeki bir evde bulunan ledi yakmak istiyorum. Bunun için ne yapılmalı. Ne almalıyım. Herhangi bir kaynak bulamadım. Biraz daha açarsam ben evde local üzerinden bu istediğim işlemleri yapıyorum herhangi bir sıkıntı yok. Ip adresiyle dışarı bağlanmak istiyorum.

E-x8

Aracı olarak C# programı kullanacaksanız soket sistemini araştırın. Daha sonra gelen bilgiyi usb yoluyla gönderir ledi yakarsınız.

ds01

Alıntı yapılan: E-x8 - 11 Mayıs 2017, 17:27:40
Aracı olarak C# programı kullanacaksanız soket sistemini araştırın. Daha sonra gelen bilgiyi usb yoluyla gönderir ledi yakarsınız.

Hocam c# ta soket sistemi yaptım. Onda sıkıntım yok. Local ağ üzerinden bu dediklerimi yapıyorum. Benim uzak mesafelere yapmam gerekli onun için sormustum

E-x8

O zaman yapman gereken tek şey dinleme yaptığın portu modem üzerinden açmak.
Eğer modem üzerinde portu açarsan, kendi internetinden bağlanamazsın. Test edebilmek için farklı internet üzerinden bağlanman gerekecektir.

ds01

Alıntı yapılan: E-x8 - 11 Mayıs 2017, 17:53:17
O zaman yapman gereken tek şey dinleme yaptığın portu modem üzerinden açmak.
Eğer modem üzerinde portu açarsan, kendi internetinden bağlanamazsın. Test edebilmek için farklı internet üzerinden bağlanman gerekecektir.

Hocam çok teşekkürler birşey daha soracaktım. Hangi ip adresini kullanmam lazım. Bildiğin kadarıyla modemin ip si dinamik. Statik ip gerekli degilmidir.

E-x8

Global IP adresini yazmalisin. Whatsmyipadress gibi sitelerden veya modem üzerinden bu ip adresine erişebilirsin. Fakat her modem dinamiktir bu yuzden bağlantı bilgilerin modem reset atilincaya kadar gecerli olacaktır. Eğer statik yaparsaniz bu sorunu çözebilirsiniz. Fakat IP' yi statik yapmak güvenlik risklerini doğurur. Statik yapabilmek icin çeşitli 3. Parti uygulamalar mevcut fakat en iyisi ek ucret (10TL/ay) vererek internet saglayicinizdan istemek olacaktir. Internet servis saglayisindan aldiginiz hizmette 100% guvenli sayılmaz sadece reset durumunda statik ip yi bekletmez çabucak bağlantıyı kurar.

ds01

#6
Resim 1:



Resim 2:


Hocam çok teşekkür ederim yardımlarınız için. Port açarken  bir sorunla karşılaştım. Zyxel VDSL Modem kullanıyorum. Resim 1 de port açılmış görülüyor. Modemdeki güvenlik duvarınıda kapattım. http://www.whatsmyip.org/ sitesinden global  "85.96.323.212" ip adresimi buldum.  http://ping.eu/port-chk/
check ettiğimde portumun kapalı olduğu görülüyor. Bu sorunu nasıl çözebilirim.Başka portlarıda denedim aynı düzelme yok.

engerex

Statik dinamik farketmez. Yeterki sanal ip olmasın.
Artık modemlerden DDNS servis destekleri var. ds01.ddnsservice.com gibi sabit adres tanımlayabiliyorsun.

ilyas KAYA

#8
Socket bağlantı kurdu iseniz port açmaya gerek yok ki. Zaten 80 portu uzetinden haberleşir...

ilyas KAYA

#9
Neyse vazgeçtim; port açıp yapın daha kolay...

E-x8

#10
@ds01 Zyxel modemlerin arayüzlerini bilmiyorum lakin şurada bir video mevcut arkadaşın biri senin marka modele sahip modem üzerinde port açmaya çalışıyor.

Yardımcı olabilir :
https://www.youtube.com/watch?v=Xkq7Pkz6ytQ&t=211s

ds01

Öncelikle yardımlarınız için çok teşekkür ederim. Yoğunluktan yeni bakabilme fırsatım oldu. Halen uzaktan erişim sağlayabilmiş değilim. Modemin içerisine girdiğim zaman WAN ip adres isminde bir adres var 100.101.xx.xx şeklinde . www.whatsmyip.org adresinden dinamik ip mi sorgulattığım zaman ise 85.96.xx.xx şeklinde bir ip veriyor. WAN ip adresi ile bu ip adresinin aynı olması gerekliymiş. Bende aynı değil.Bu şekilde olunca port yönlendirilemediği söyleniyor. Benim pc üzerinde pythonla basit bir port dinleme programı yaptım.Kodlar aşağıdadır. http://ping.eu/port-chk/ kullanarak 85.96.xx.xx ve ya  100.101.xx.xx ip adresine ait portu dinlenip dinlenmediğini kontrol etmeye çalıştığımda portlar kapalı görünmekte. Modem olarak zyxel vmg3312-b10b modemini kullanıyorum. Nasıl bir çözüm bulabilirim.



import socket
soket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

HOST = "192.168.1.35"
PORT = 42700

soket.bind((HOST,PORT))

soket.listen(1)

baglanti,adres = soket.accept()


baglanti.send("asd")

data = baglanti.recv(1024)
print data

soket.close()