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.
Şekil 1
Daha sonra ziyaretcinin Ip numarası veritabanımıza kaydedilecek. (Şekil 2).
Ş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.
Ş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