下面是详细讲解“asp.net下将纯真IP数据导入数据库中的代码”的完整攻略:
前置要求
在开始编写代码之前需先准备好以下内容:
- 纯真IP数据库,可以到官网下载;
- Visual Studio开发环境;
- SQL Server数据库。
导入纯真IP数据库
- 下载纯真IP数据库,并将其解压到本地硬盘;
- 在SQL Server中创建一个新的数据库,例如命名为ipdb;
- 在SQL Server Management Studio中打开刚才解压得到的QQWry.dat文件;
- 选择菜单中的“工具”->“导入/导出数据”;
- 选择“源数据为一个文件或者数据库”;
- 在“文件名”中输入数据文件路径,例如“D:\QQWry.dat”;
- 在“要导入到的表或者视图”中,选择刚才创建的数据库中的一个表,例如命名为ipdata;
- 在“下一步”中,选择“从文件中复制数据到目标表”;
- 在“下一步”中,选择“自定义查询”;
- 在“下一步”中,点击“选项”按钮,然后将“代码页”设置为“936 GBK”;
- 在“下一步”中,将“目标表”中列与数据源中的列一一对应;
- 在“下一步”中,将“保留源标识”转化为“是”,然后点击“下一步”;
- 在“下一步”中,点击“完成”。
完成上述步骤后,数据库中便已经成功导入了纯真IP数据。
在ASP.NET中读取IP地址信息
接下来,我们就可以使用ASP.NET来读取IP地址信息,并将其存入数据库中。
下面是两条示例说明:
示例一
string strIp = Request.ServerVariables["REMOTE_ADDR"];
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "SELECT TOP 1 * FROM ipdata WHERE @strIP BETWEEN STARTIPNUM AND ENDIPNUM ORDER BY STARTIPNUM DESC";
cmd.Parameters.AddWithValue("strIP", strIp);
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
string strCountry = reader["country"].ToString();
string strRegion = reader["region"].ToString();
string strCity = reader["city"].ToString();
}
}
}
}
示例二
string strIp = Request.ServerVariables["REMOTE_ADDR"];
byte[] arrIp = new byte[4];
string[] arrSplit = strIp.Split('.');
for (int i = 0; i < arrSplit.Length; i++)
{
arrIp[i] = byte.Parse(arrSplit[i]);
}
long lngIpNum = BitConverter.ToInt32(arrIp, 0);
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString()))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandText = "SELECT TOP 1 * FROM ipdata WHERE @lngIpNum BETWEEN STARTIPNUM AND ENDIPNUM ORDER BY STARTIPNUM DESC";
cmd.Parameters.AddWithValue("lngIpNum", lngIpNum);
using (SqlDataReader reader = cmd.ExecuteReader())
{
if (reader.Read())
{
string strCountry = reader["country"].ToString();
string strRegion = reader["region"].ToString();
string strCity = reader["city"].ToString();
}
}
}
}
以上代码示例中,我们在ASP.NET中获取了客户端的IP地址,并通过SQL查询获取对应的地理位置信息。
通过这种方式,我们就可以将纯真IP数据导入数据库,并在ASP.NET中方便地查询IP地址信息了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:asp.net下将纯真IP数据导入数据库中的代码 - Python技术站