• 16.2.2019
  • 1666
  • ip ile ülke bulmakYazılı Ders

Bu derste ziyaretçinin hangi ülkede olduğunu bulmayı öğreneceğiz.Bunu yapmak için tabiki bir çok yöntem vardır ama biz en kısa yollardan birini yapacağız.Bir sürü ülke var ve bir sürü ip aralıkları var. Bütün bunları kıyaslamak için bir veri tabanını harcamak gerekebilir.

 

Biz bütün bunlarla uğraşmayacağız.Api kullanarak bu işi halledeceğiz.ilk önce aşağıdaki siteye üye olun.

https://ipinfodb.com/

Bu siteye üye olduktan sonra size uzunca bir APIKey verecek, şuna benzer birşey:b429f4b93a210895f5395daac0897ebbb429f4b93a210895f5395daac0897ebb

 

Bu apikeyi elde ettiyseniz bu işin yarısını hallettiniz demektir.Çünki bu apikey ile api desteği alacağız ve oradaki veri tabanındaki ip leri kontrol ederek hangi ülkeden ziyaretçi geldiğini anlayacağız.Türkiyedeki bazı iller doğru çalışmıyor ama başta söyleyim...

Şimdi kodlara geçelim;

Default.aspx;

<asp:GridView ID="gvLocation" runat="server" AutoGenerateColumns = "false">

        <Columns>
            <asp:BoundField DataField="IPAddress" HeaderText="IP Address" />
            <asp:BoundField DataField="CountryName" HeaderText="Country" />
            <asp:BoundField DataField="CityName" HeaderText="City" />
            <asp:BoundField DataField="RegionName" HeaderText="Region" />
            <asp:BoundField DataField="CountryCode" HeaderText="Country Code" />
            <asp:BoundField DataField="Latitude" HeaderText="Latitude" />
            <asp:BoundField DataField="Longitude" HeaderText="Latitude" />
            <asp:BoundField DataField="Timezone" HeaderText="Timezone" />
        </Columns>
    </asp:GridView>
    <br /><br /><br /><br /><br />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
 
 
Default.aspx.cs;
 
 protected void Page_Load(object sender, EventArgs e)
    {
        string ipAddress = Request.ServerVariables["HTTP_X_FORWARDED_FOR"];
        if (string.IsNullOrEmpty(ipAddress))
        {
            ipAddress = Request.ServerVariables["REMOTE_ADDR"];
        }
 
        string APIKey = "b429f4b93a210895f5395daac0897ebb5dab429f4b93a210895f5395daac0897ebb5";
        string url = string.Format("http://api.ipinfodb.com/v3/ip-city/?key={0}&ip={1}&format=json", APIKey, ipAddress);
       
 
        //string url = "";
        //url = "http://api.ipinfodb.com/v3/ip-city/?key=b429f4b93a210895f5395daac0897ebb5b429f4b93a210895f5395daac0897ebb5&ip=5.176.180.124&format=json";
 
        using (WebClient client = new WebClient())
        {
            string json = client.DownloadString(url);
            string[] parcalar = json.Split(',');
            string[] parcalar2 = parcalar[4].Split('"');
            string ulke = parcalar2[3];
 
            
            
            try
            {
                Location location = new JavaScriptSerializer().Deserialize<Location>(json);
                List<Location> locations = new List<Location>();
                locations.Add(location);
                gvLocation.DataSource = locations;
                gvLocation.DataBind();
            }
            catch (System.Exception)
            {
                Label1.Text = ulke + "<br><br>";
                //Label1.Text += json;
            }
            
        }
    }
 
Kütüphaneleri unutmayalım;
 
using System.Collections.Generic;
using System.Web.Script.Serialization;
using System.Activities;
 
Apikeyi değiştirmeyi unutmayın, herkese iyi çalışmalar...
 
 
 
 

YORUM YAP