Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
C# İle İnternet IP Adresi Alma
#1
Geliştirdiğiniz uygulamada Bilgisayarın internet IP adresini almanız gerekirse aşağıda verdiğim örnekten faydalanabilirsiniz.

Öncelikle IP adresini almak için bir web sayfasına ihtiyacımız var. Örnek olarak bir php sayfası kullanacağız.

Öncelikle programda gerekli tanımlamalar ve yazmış olduğum örnek fonksiyonun kullanımı ile başlayalım;


PHP Kod:
using System.Text;
using System.Net;
using System.IO


PHP Kod:
public string ipAl(string urlstring ip_oncesistring ip_sonrasibool varsayilan_proxy_sunucusu_kullanilsin)
        {
            
String kaynak "";
            try {
            
HttpWebRequest http_istek = (HttpWebRequestHttpWebRequest.Create(url);
            
http_istek.Timeout 60000
            
http_istek.UserAgent "";
            
http_istek.Method "GET";
            if (
varsayilan_proxy_sunucusu_kullanilsin)
            {
            
IWebProxy proxy HttpWebRequest.DefaultWebProxy;
            
proxy.Credentials CredentialCache.DefaultNetworkCredentials;
            
http_istek.Proxy proxy;
            }
            
WebResponse resp = (WebResponsehttp_istek.GetResponse();
            
StreamReader respReader = new StreamReader(resp.GetResponseStream(),Encoding.Default);
         
   kaynak respReader.ReadToEnd();
            
respReader.Close();
            }
            catch (
Exception e)
            {
                
MessageBox.Show("HTTP Bağlantısı kurulurken hata oluştu : " e.Message);
                return 
""// Kaynak alma sırasında hata oluştu!
            
}
            
int ilk_index kaynak.IndexOf(ip_oncesi);
            if (
ilk_index == -1)
            {
                return 
""// Aranılan metin kaynakta bulunamadı!
            
}
            
int bas_index ilk_index ip_oncesi.Length;
            
kaynak kaynak.Substring(bas_indexkaynak.Length bas_index );
            
int son_index kaynak.IndexOf(ip_sonrasi);
            if (
son_index == -1)
            {
                return 
""// Aranılan metin kaynakta bulunamadı!
            
}
            
kaynak kaynak.Substring(0,son_index);
            return 
kaynak.Trim();
        } 

IP adresini almak için kullandığımız fonksiyon 4 adet parametre alıyor,

1) URL (String)  : IP adresini alacağımız sayfanın adresi. Örnek www.turkishcode.com/ip.php
2) IP_ONCESI (String) : İp adresini sayfanın kaynağından parselleyeceğimiz için, ip adresinin sayfa kaynağında tam olarak nereden başladığını belli etmek için kullandığımız parametre. IP adresinin sayfanın kaynağında tam olarak nereden başladığını bulup buradan itibaren kopyalama işlemi yapacağız.
3) IP_SONRASI (String) : ip aderesinin nerede bittiğini belli etmek için kullandığımız parametre değeri.
4) VARSAYILAN_PROXY_SUNUCUSU_KULLANILSIN (Bool) : Eğer kurum yada bir şirket ağından internete erişimimiz varsa direkt olarak o siteye erişim imkanımız bulunmayabilir. HTTP bağlantı işlemini kurum yada şirkete ait proxy sunucusu üzerinden geçirmemiz gerektiği durumlarda bu değişkeni true yaparak buna imkan sağlayıp verileri bilgisayarımızda ayarlı proxy sunucusu üzerinden geçirebiliriz.

Örnek PHP sayfasına ait kod : (ip.php)

PHP Kod:
<!DOCTYPE html>
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>IP Bul</title>
</
head>
<
body>
<
div id="ip_adresi"><?PHP echo $_SERVER['REMOTE_ADDR']; ?></div>
</body>
</html> 


Böyle bir sayfanın http://turkishcode.com/ip.php adresinde bulunduğunu varsayarsak ve bu sayfadan IP parsellemek için;

PHP Kod:
    void Button1Click(object senderEventArgs e)
        {
            

            
String ip ipAl("http://www.turkishcode.com/ip.php","<div id=\"ip_adresi\">","</div>"true);
            
            if (
ip != "")
            {
                
MessageBox.Show("ip adresiniz :  " ip);
            }
            else
            {
                
MessageBox.Show("IP adresi alınamadı!");
            }

        
    
        } 

Bu şekilde IP bilgisi veren sitelerden de ip adresi çekebilirsiniz. Fakat site kaynağında sonradan ip kısmının bulunduğu kısım değişikliğe uğrarsa bu ip adresini  almanıza engel olabilir.
Burada dikkat etmemiz gereken husus, ip_adresinin bulunduğu kısmın öncesi ve sonrasını doğru belirleyip fonksiyona parametre olarak göndermek.

* Programlarda IP bilgisini güvenlik için kullanmanızı kesinlikle önermem. Daha doğrusu gelen ip bilgisine tamamen güvenip hareket etmenizi önermem. Çünkü ağ üzerinden gelen giden verilerde oynama yapılabilmesi olası bir durum olup bunu yapan programlar bulunmaktadır. Yani siz programınızda gerçek ip adresini beklerken sahte responder ile farklı bir ip adresi gönderilebilir.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  c# nesnenin görüntüsünü alma Administrator 0 3,379 29-06-2017, 14:39
Son Yorum: Administrator
  C# önemli dizin yollarını alma Administrator 0 3,301 21-11-2015, 14:26
Son Yorum: Administrator
  C# ile Başlayan ve Sonlandırılan İşlemleri Alma [ Process hook ] Administrator 2 18,860 20-11-2015, 22:42
Son Yorum: Administrator

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi