Yazı Font Küçült Yazı Font Büyült

Sitenizi Ziyaret Edenlerin IP Numaralarını Kaydetme

Arkadaşlar bu makalemizde sitenize giriş yapan ziyaretçilerin Ip numarasını gösterip, Access veritabanına kaydedeceğiz. Ziyaretci siteyi ilk ziyaret ettiği zaman Şekil 1 deki ekran ve mesaj gelecek.

Resim1

Şekil 1

 Daha sonra ziyaretcinin Ip numarası veritabanımıza kaydedilecek. (Şekil 2).

Resim2

Şekil 2

Ziyaretci daha sonra siteyi ziyaret ettiği zaman veritabanındaki Ip numaraları ile karşılaştırılarak, kayıtlı Ip ise Şekil 3 teki ekran ve mesaj gelecek.

Resim4

Şekil 3

Unutmadan; Sayfanıza
using System.IO;
using System.Net;
i eklemeyi unutmayın.

public partial class _Default : System.Web.UI.Page
{
    string a,b,str;
    private string GetHttpTxt(string URL)
    {

        Stream stm = HttpWebRequest.Create(URL).GetResponse().GetResponseStream();
        return new StreamReader(stm, false).ReadToEnd();
    }
    protected void Page_Load(object sender, EventArgs e)
    {
       //ip numarasını sorgulatıp, buluyoruz.
     
        a = (GetHttpTxt("http://whatismyip.com/automation/n09230945.asp"));
     

              
        //Sorgu kısmı
       //ip numarasını veritabanında aratıyoruz.
        str = "Select * From ziyaretci_ip where ip_no=‘" + a + "‘";
       System.Data.OleDb.OleDbConnection baglan = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data/uye.mdb") + ";");
       System.Data.OleDb.OleDbDataAdapter adp =new System.Data.OleDb.OleDbDataAdapter();
       adp.SelectCommand = new System.Data.OleDb.OleDbCommand(str, baglan);
       System.Data.OleDb.OleDbCommandBuilder CB = new System.Data.OleDb.OleDbCommandBuilder(adp);
       System.Data.OleDb.OleDbCommand cmd = new  System.Data.OleDb.OleDbCommand(str, baglan);

        baglan.Open();
        System.Data.DataSet ds = new DataSet();
        System.Data.OleDb.OleDbDataReader dr;

        adp.Fill(ds);
        dr = cmd.ExecuteReader();

         while (dr.Read())
        {
            string b;
            b = dr.GetString(1);
             //veya aşağıdaki gibi
            //if (a == dr.GetString(1))
            //ip numarası veritabanında mevxut ise;
             if (a == b)
             {
                Response.Write("IP Numaranız: " + a);
                Response.Write("< / br >");
                Response.Write("Siteye daha önce bu ip no ile giriş yapmışsınız.");
                return;
            }
            //else if (a != dr.GetString(1))
            //veya aşağıdaki gibi
            else if (a != b)
             {
                Response.Write("IP Numaranız: " + a);
                Response.Write("< / br >");
                Response.Write("Siteye bu ip no ile ilk girişiniz.");
               
            }
          
            }
                                                  
        dr.Close();
        baglan.Close();

        Response.Write("IP Numaranız: " + a);
        Response.Write("< / br >");
        Response.Write("Siteye bu ip no ile ilk girişiniz.");
      
        //kaydetme işlemi     
        kayit();
    }
    void kayit()
    {
        //Eğer ziyaretçinin ip numarası veritabanımızda
        //kayıtlı değil ise, ip numarasını kaydediyoruz...Bahadır
        System.Data.OleDb.OleDbConnection baglan = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("App_Data/uye.mdb") + ";");
        System.Data.OleDb.OleDbDataAdapter adp =new System.Data.OleDb.OleDbDataAdapter();
        adp.SelectCommand = new System.Data.OleDb.OleDbCommand("Select * From ziyaretci_ip", baglan);
        System.Data.OleDb.OleDbCommandBuilder CB = new System.Data.OleDb.OleDbCommandBuilder(adp);
       
        baglan.Open();
        System.Data.DataSet ds1 = new DataSet();
        adp.Fill(ds1);
        System.Data.DataRow rw1;

        rw1 = ds1.Tables[0].NewRow();

       int x1;
        x1 = ds1.Tables[0].Rows.Count;

        rw1["ip_no"] = a;
       
        ds1.Tables[0].Rows.InsertAt(rw1, x1 + 1);
        adp.Update(ds1);

       baglan.Close();
    }

}

//Bir sonraki makalede buluşmak üzere. Bahadır ŞAHİN