Dinamik İp çekme veya anlık dış ip alma

Sabit ip yok ve uzak masaüstü bilgisayarınızı kullanmak istiyorsunuz elektirikler gitti yada modem kapandı. modem üzerinden yaptığınız ayarlarınız tamam ama bağlanmak için ip ihtiyacınız var

sizin için bunu kodlamak istedim. uygulamayı kendiniz istediğiniz gibi tasarlayabilirsiniz.

ilk olarak timer oluşturup anlık dış ip sorgulayan bir fonksiyonla dış ip cekiyoruz

daha sonra ip sürekli olarak apiye göndermesin diye bir text dosyasına yazıp oradan değişip değişmediğini kontrol ediyoruz.

ene son dosya daki ile gelen ip değişmişse apiye yeni ip gönderiyoruz.

sonra kurulum oluşturup programı başlangıcta calışacak programlara ekleyeceğiz. ki bilgisayar elektirik geldiğinde otomatik acılacak ve size yeni ip göndermesi için programınızı çalışmış olacak

başlanıca eklemek için çalıştır komut sayfasından shell:startup ile başlangıc klasörüne program kısayolunu yapıştırın. iç ipinizi sabitleyin. bunun için cmd den ipconfig ile ip öğrenin daha sonra asağıdaki ip adreslerini kullan diyerek sabitleyin.

private void button1_Click(object sender, EventArgs e)
        {
            getİp();
        }
        int sayac;
        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = "0";
            timer1.Interval = 9000;
         timer1.Start();

        }

        private void timer1_Tick(object sender, EventArgs e)
        {

            getİp();

        }
    public void getİp()
        {
            sayac++;

            var webClient = new WebClient();

            string dnsString = webClient.DownloadString("http://checkip.dyndns.org");
            dnsString = (new Regex(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b")).Match(dnsString).Value;

            webClient.Dispose();

            string dosya_yolums = @"C:\hasan\metinbelgesi.txt";

            FileStream fsw = new FileStream(dosya_yolums, FileMode.Open, FileAccess.Read);
            StreamReader sws = new StreamReader(fsw);

            string yazi = sws.ReadLine();



            sws.Close();

            fsw.Close();



            if (yazi == dnsString.ToString())
            {

                label1.Text = "İp No Aynı "+ dnsString.ToString();
            }
            else
            {
                string url = "https://adtescil.net/api/lisans/ipget.php?sifrem=apikey&ip=" + dnsString.ToString();
                string adres = url;
                WebRequest istek = HttpWebRequest.Create(adres);
                WebResponse cevap;
                cevap = istek.GetResponse();
                label1.Text = "Basarılı";
            }
            string dosya_yolu = @"C:\hasan\metinbelgesi.txt";
            //İşlem yapacağımız dosyanın yolunu belirtiyoruz.
            FileStream fs = new FileStream(dosya_yolu, FileMode.OpenOrCreate, FileAccess.Write);

            StreamWriter sw = new StreamWriter(fs);

            sw.WriteLine(dnsString.ToString());


            sw.Flush();

            sw.Close();
            fs.Close();
        }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir