none
modemi yeniden başlatma

    Soru

  • c# kullanarak kullanıcının tek tıklamayla (ya da zamanlamaya bağlı olarak) modemini yeniden başlatmasını istiyorum.

    asıl amacım kullanıcının internet bağlantısını kesip farklı bir IP adresi alması. modemi panelden yeniden başlatmayla veya kapatıp açmayla aynı etkiyi yaratmak istiyorum c# kullanarak. nasıl yappabilirim?

    21 Ekim 2011 Cuma 21:42

Yanıtlar

  • Sorunun cevabı her modem/router için spesifik bir kod yazılması gereğidir. Web arayüzü üzerinden örneğin Airties / USR / ZyXel cihazlar için ayrı ayrı bu yapılabilir, gayette olasıdır. Bazı modemler de (daha önce forumda çokca belirtildiği gibi) telnet arayüzü ile erişilebilir olup desteklenen komut seti nispetince bu işleme izin verebilirler. (admin olarak login olursanız tabi). Bu telnet arayüzünü kullanmak için de haliyle:

    1- Modemin/routerin desteklediği komut setini bilmeniz,

    2- Bir telnet C# kütüphanesi edinmeniz gerekir.

    Kolay gelsin.

     


    Best regards, Saygılarımla, Onur Güzel

    • Yanıt Olarak İşaretleyen Degauser 22 Ekim 2011 Cumartesi 09:41
    22 Ekim 2011 Cumartesi 09:23
  • Selamlar,

    Bu adresi bir incele belki işine yarar.

    http://www.csharpnedir.com/forum2/printer_friendly_posts.asp?TID=22305

    Uğur 

    • Yanıt Olarak İşaretleyen Degauser 22 Ekim 2011 Cumartesi 09:41
    21 Ekim 2011 Cuma 21:51

Tüm Yanıtlar

  • Selamlar,

    Bu adresi bir incele belki işine yarar.

    http://www.csharpnedir.com/forum2/printer_friendly_posts.asp?TID=22305

    Uğur 

    • Yanıt Olarak İşaretleyen Degauser 22 Ekim 2011 Cumartesi 09:41
    21 Ekim 2011 Cuma 21:51
  • teşekkürler ama tek bir arayüze bağlı kalmamam lazım
    22 Ekim 2011 Cumartesi 09:01
  • Sorunun cevabı her modem/router için spesifik bir kod yazılması gereğidir. Web arayüzü üzerinden örneğin Airties / USR / ZyXel cihazlar için ayrı ayrı bu yapılabilir, gayette olasıdır. Bazı modemler de (daha önce forumda çokca belirtildiği gibi) telnet arayüzü ile erişilebilir olup desteklenen komut seti nispetince bu işleme izin verebilirler. (admin olarak login olursanız tabi). Bu telnet arayüzünü kullanmak için de haliyle:

    1- Modemin/routerin desteklediği komut setini bilmeniz,

    2- Bir telnet C# kütüphanesi edinmeniz gerekir.

    Kolay gelsin.

     


    Best regards, Saygılarımla, Onur Güzel

    • Yanıt Olarak İşaretleyen Degauser 22 Ekim 2011 Cumartesi 09:41
    22 Ekim 2011 Cumartesi 09:23
  • dolayısıyla uğur beyin verdiği yanıt geçerli oluyor. mecburen her modem için ayrı ayrı yazmalıyız. peki bu işin sırası ne olmalıdır? modem arayüzü parola korumalıysa ve kullanıcı bu parolayı benim programıma yazıp butona tıklarsa; programım içinde web browserla gezip prolayı ilgili satıra yazdırmam, ilgili linklere gitmem ve gereken yerlere tıklamam mümkün olur mu c# ile?
    22 Ekim 2011 Cumartesi 09:40
  • dolayısıyla uğur beyin verdiği yanıt geçerli oluyor. mecburen her modem için ayrı ayrı yazmalıyız. peki bu işin sırası ne olmalıdır? modem arayüzü parola korumalıysa ve kullanıcı bu parolayı benim programıma yazıp butona tıklarsa; programım içinde web browserla gezip prolayı ilgili satıra yazdırmam, ilgili linklere gitmem ve gereken yerlere tıklamam mümkün olur mu c# ile?

    Şu şekilde mantıksal düşünce oluşturulabilir:

    Eğer kimlik doğrulama http basic authentication denilen temel sunucu doğrulaması ise ilk önce ilgili modem yeniden başlatma URL'sine WebClient veya HttpWebRequest sınıfları ile Credentials property değeri belirtilerek gidilir/giriş yapılır. Eğer script suretiyle giriş yapılacaksa (asp, php, jsp gibi); login sayfasına normal yolla Webbrowser.Navigate("http://192.168.1.1/modembaslat.php") örneğindeki gibi gidilip username ve password alanına Webbrowser1.Document.GetElementById("password_kutusu_id").SetAttribute("value", "password");...tarzında kullanıcı adı ve şifre alanları doldurularak Webbrowser1.Document.GetElementById("giriş_butonu_id").InvokeMember("Click"); ile Giriş (submit) butona basılarak giriş yapılabilir.

    Bütün bu komutları çalıştırırken her URL navigasyonu sonunda haliyle DocumentCompleted olayı ateşlenecektir. Bu yüzden tek bir (zaten ikinci olamaz) DocumentCompleted olayı içinde sırasıyla her bir aksiyon için bir numara verip, hangi işlemden sonra hangi sebeple DocumentCompleted ateşlendiğini tespit edip ona göre sonraki işlem komutunu çalıştır gibi mantıksal bir sıraya konulması gerekir. (Eğer navige edilecek sayfalar web arayüzünden birden fazla ise).

    Sonuçta bütün bunların nihaileşmesi ve sabitlenmesi ilgili modemin web arayüz yapısı ve bu arayüz içindeki HTML/DOM yapısına bağlı kalmaktadır.

    Fikir verebildiğini ümit ediyorum,

    Kolay gelsin.


    Best regards, Saygılarımla, Onur Güzel


    23 Ekim 2011 Pazar 10:52