Extracting the Country from IP Address | |||
| |||
Part 1. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Treaple.com { public partial class Form1 : Form { private CompareIP compareIP = null; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { compareIP = new CompareIP(); string Ip = txtIP.Text.Trim(); string[] Ip_List = Ip.Split(".".ToCharArray()); string X_Ip = ""; foreach (string ip in Ip_List) { if (Convert.ToInt16(ip) < 16) X_Ip += "0" + Convert.ToInt16(ip).ToString("x"); else X_Ip += Convert.ToInt16(ip).ToString("x"); } long N_Ip = long.Parse(X_Ip, System.Globalization.NumberStyles.HexNumber); compareIP.IPAddress = N_Ip; DataSet newdata = compareIP.GetIP(); try { txtCountry.Text = newdata.Tables[0].Rows[0][2].ToString(); txtCity.Text = newdata.Tables[0].Rows[0][3].ToString(); } catch { MessageBox.Show("Invalid Ip address!"); } } } } Part2. using System; using System.Collections.Generic; using System.Text; using System.Data; namespace Treaple.com { //////////////////////Base Class/////////////////////// public abstract class DataExchange { public IPAccessDataBase accessDataBase; public abstract int AddData(); public abstract int ChangeData(); public abstract DataSet GetData(); } //////////////////////Sub Class//////////////////////// public class CompareIP { public IPAccessDataBase iPAccessDataBase; public long IPAddress; public CompareIP() { iPAccessDataBase = new IPAccessDataBase(); } public DataSet GetIP() { return iPAccessDataBase.SelectData("select * from address where " + this.IPAddress + " >=ip1 and " + this.IPAddress + " <= ip2", "address"); } } } part3. using System; using System.Data; using System.Data.OleDb; using System.Data.SqlClient; namespace Treaple.com { /// public class IPAccessDataBase { private string strSQL; private string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" +"c:"+("IP.MDB"); private OleDbConnection myConnection; private OleDbCommandBuilder sqlCmdBld; private OleDbDataAdapter da; private DataSet ds = new DataSet(); public IPAccessDataBase() { } public IPAccessDataBase(string conStr) { connectionString = conStr; } public DataSet SelectData(string tempStrSQL, string tempTableName) { this.strSQL = tempStrSQL; this.myConnection = new OleDbConnection(connectionString); this.da = new OleDbDataAdapter(this.strSQL, this.myConnection); this.ds.Clear(); this.da.Fill(ds, tempTableName); return ds; } public DataSet UpdateData(DataSet changedDataSet, string tableName) { this.myConnection = new OleDbConnection(connectionString); this.da = new OleDbDataAdapter(this.strSQL, this.myConnection); this.sqlCmdBld = new OleDbCommandBuilder(da); this.da.Update(changedDataSet, tableName); return changedDataSet; } public DataTable SelectData(string tempStrSQL) { this.myConnection = new OleDbConnection(connectionString); DataSet tempDataSet = new DataSet(); this.da = new OleDbDataAdapter(tempStrSQL, this.myConnection); this.da.Fill(tempDataSet); return tempDataSet.Tables[0]; } public int UpdateData(string tempStrSQL) { OleDbConnection myConnection = new OleDbConnection(connectionString); OleDbCommand myCommand = new OleDbCommand(tempStrSQL); myCommand.Connection = myConnection; myConnection.Open(); int intNumber = myCommand.ExecuteNonQuery(); myCommand.Connection.Close(); myConnection.Close(); return intNumber; } } } [caption id="" align="aligncenter" caption="Download Source Code"]1118008935.zip[/caption] Tags: C# C# Graphics | |||
| |||
| |||
Login for comment |