Eğitim Mh. Ahsen Çıkmazı Sk. Sadıkoğlu 5 Plaza No:12/41
Hasanpaşa, Kadıköy - İstanbul / Türkiye

SQL Server : WAN IP Adresini Tespit Etmek

Dinamik IP kullanan internete bağlı bir terminalde veya sunucuda kurulu olan SQL Server aracılığıyla WAN-IP adresini nasıl tespit edebiliriz?

SQL Server : WAN IP Adresini Tespit Etmek

Soru:

Dinamik IP kullanan internete bağlı bir terminalde veya sunucuda kurulu olan SQL Server aracılığıyla WAN-IP adresini nasıl tespit edebiliriz?

Cevap:

Anladığım kadarıyla dinamik IP kullanan bir network’deki SQL Server’a erişmek istiyorsunuz ve bunun için IP’nin güncel değerini öğrenmek niyetindesiniz, doğru mu?

Durum bundan ibaret ise aşağıdaki kodlarla bunu yapabilirsiniz. Fakat dikkat etmeniz gereken bazı noktalar var, bu noktalara dikkat etmez ve kodun arkasını toplamazsanız ciddi güvenlik açıklarına da sebep olabilirsiniz. O nedenle aşağıda örneğini verdiğim kodu iyice hazmetmeden kullanmamanızı tavsiye ederim.

sp_configure 'show advanced options', 1           -->  SQL Server'in gelişmiş seçeneklerini kullanabilmek için ilgili kilidi AÇIYORUZ
reconfigure with override                         -->  SQL Server'i son duruma göre yeniden konfigüre ediyoruz.
GO

sp_configure 'Ole Automation Procedures', 1       -->  SQL Server'in OLE Otomasyon nesnelerini kullanabilmesi için ilgili kilidi AÇIYORUZ
reconfigure with override                         -->  SQL Server'i son duruma göre yeniden konfigüre ediyoruz.
GO

DECLARE  @SONUC  VARCHAR(50)
      ,  @HATA    INT
      ,  @CEVAP  INT

EXEC @HATA  = sp_OACreate 'MSXML2.ServerXMLHTTP'  --> OLE Otomasyon nesnesi üretiyoruz,
            , @CEVAP OUT                          -->  metodun return değerini @CEVAP değişkenine alıyoruz...
            ;
IF (@HATA <> 0) RAISERROR('HTTP Bağlantısı açılamadı.', 10, 1);  --> Cevap olarak Durum koduna bakıyoruz, 0'dan farklıysa hata kodu oluşmuş demektir...

EXEC @HATA  = sp_OAMethod @CEVAP                  --> AYNI NESNENİN
            , 'open'                              -->  OPEN metodunu çalıştırıp parametreleri devamında veriyoruz.
            , NULL                                --> Bundan sonrası çağırdığımız metodun parametrelerine göre değişebiliyor
            , 'POST'                              --> Ayrıntılar için https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-oamethod-transact-sql?view=sql-server-2017 
            , 'http://www.dubaron.com/myip'       --> IP adresimizi bize söyleyen bir web sitesi. sonuç sadece IP adresi olduğu için parse etme ihtiyacı olmuyor...
            , 'false'
            ;
EXEC @HATA  = sp_OAMethod @CEVAP                  -->  AYNI NESNENİN
            , 'send'                              --> SEND metodunu çalıştırıyoruz...

EXEC @HATA = sp_OAGetProperty @CEVAP              -->  AYNI NESNENİN
            , 'responseText'                      -->  "responseText" field'ini "OKUYORUZ"
            , @SONUC OUT                          --> okunan fieldin değerini / içeriğini @SONUC değişkenine alıyoruz
            ;

SELECT @SONUC as WanIpAdresi;
GO

sp_configure 'Ole Automation Procedures', 0       -->  SQL Server'in OLE Otomasyon nesnelerini kullanabilmesi için ilgili kilidi KAPATIYORUZ
reconfigure with override                         -->  SQL Server'i son duruma göre yeniden konfigüre ediyoruz.
GO

sp_configure 'show advanced options', 0           -->  SQL Server'in gelişmiş seçeneklerini kullanabilmek için ilgili kilidi KAPATIYORUZ
reconfigure with override                         -->  SQL Server'i son duruma göre yeniden konfigüre ediyoruz.
GO
Uğur PARLAYAN

1976 İstanbul doğumlu yazar, yeniliğe ve teknolojiye karşı aşırı ilgisi nedeniyle ortaokul yıllarında tanıştığı programlamayı profesyonel düzeyde devam ettirmektedir. 2005 yılından bu yana perakende, hukuk, lojistik ve makine haberleşmesi konuları başta olmak üzere çeşitli masaüstü ve internet tabanlı yazılımlar geliştirmiştir. Öğrenmenin, yeniliklere açık olmanın bu mesleğin temel taşlarından birisi olduğunun farkında olan yazarımız 2016 Yılında Rubicube Yazılım, Donanım ve Teknoloji Hizmetleri Limited Şirketini kurmuş ve çalışmalarını bu şemsiye altında devam etmektedir.

Yorum yapabilmek için giriş yapmalısınız