国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - ASP.NET教程 - asp.net下將純真IP數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中的代碼

asp.net下將純真IP數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中的代碼

2019-09-11 10:47asp.net之家 ASP.NET教程

純真IP數(shù)據(jù)庫包含最新的IP信息,通過IP我們可以查詢訪問者的來路,地理位置!但下載下來的IP數(shù)據(jù)無法被我們直接調(diào)用,所以我們需要編寫代碼將IP寫入到數(shù)據(jù)庫中供我們使用!

純真IP數(shù)據(jù)包含381085條,可以通過下載的查詢軟件將數(shù)據(jù)解壓為文本格式,并將其編碼改為UTF8,否則在程序中讀取中文會亂碼! 
下面為程序執(zhí)行分析IP數(shù)據(jù)并插入到Sql Server的截圖:
asp.net下將純真IP數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中的代碼

asp.net下將純真IP數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中的代碼
程序通過AJAX在客戶端進(jìn)行數(shù)據(jù)插入實時更新: 
實現(xiàn)代碼如下: 
前端頁面及javascript: 

復(fù)制代碼代碼如下:


<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> 
<html xmlns=”http://www.w3.org/1999/xhtml” > 
<head> 
<title>導(dǎo)入IP地址數(shù)據(jù)庫-power by blog.atnet.cc</title> 
<style type=”text/css”> 
body{font-size:14px;} 
#log{border:solid 1px gold;width:400px;height:100px;padding:10px;background:gold;margin-bottom:15px;color:black;} 
#recordLog{font-size:12px;} 
</style> 
<script type=”text/javascript” src=”/scripts/global.js”></script> 
<script type=”text/javascript”> 
var log,reLog; //Log,RecordLog 
var recordCount; //IP記錄總數(shù) 
window.onload=function(){ 
log=document.getElementById(“log”); 

function startImport(){ 
if(!document.getElementById(“submit_ifr”)){ 
var elem=document.createElement(“iframe”); 
elem.setAttribute(“id”,”submit_ifr”); 
elem.setAttribute(“name”,”ifr”); 
elem.style.cssText=”display:none”; 
document.body.appendChild(elem); 
document.forms[0].target=elem.name; 

document.forms[0].submit(); 
log.innerHTML=”正在上傳數(shù)據(jù)!<br />”; 
return false; 


function insertIP(){ 
log.innerHTML+=”開始分析數(shù)據(jù)…<br />”; 
j.ajax.post(“/do.ashx?args=ImportIPData&action=init”,”", 
function(x){ 
var d=eval(x)[0]; 
recordCount=d.count; 
log.innerHTML+=”<font color=green>分析數(shù)據(jù)成功:<br />服務(wù)器地址:”+ 
d.server+”,記錄:”+recordCount+”條!<br /><div id='recordLog'></div>”; 
//開始插入 
insert(); 
}, 
function(x){log.innerHTML+=”<font color=red>發(fā)生異常,已終止!</font>”;} 
); 

function insert(){ 
if(!reLog)reLog=document.getElementById(“recordLog”); 
var num=Math.floor(Math.random()*100); 
j.ajax.post(“/do.ashx?args=ImportIPData&action=insert”,”num=”+num, 
function(x){var d=eval(x)[0];reLog.innerHTML=”已經(jīng)寫入數(shù)據(jù):”+(recordCount-d.count)+ 
“條,隊列:”+d.count+”條,本次寫入:”+d.insertNum+”條”; 
if(d.count!=0){insert();} 
else{reLog.innerHTML=”恭喜,寫入完畢!”;} 
},function(x){alert(x);}); 

</script> 
</head> 
<body> 
<div style=”margin:60px 100px”> 
<div id=”log”>請?zhí)顚懴嚓P(guān)數(shù)據(jù),選擇IP數(shù)據(jù)文件!</div> 
<form action=”/do.ashx?args=ImportIPData” method=”post” enctype=”multipart/form-data” target=”ifr”> 
數(shù)據(jù)庫IP:<input type=”text” name=”dbserver” value=”.” /><br /> 
數(shù)據(jù)庫名:<input type=”text” name=”dbname” value=”tp” /><br /> 
數(shù)據(jù)表名:<input type=”text” name=”tbname” value=”ip” /><br /> 
用  戶  名:<input type=”text” name=”dbuid” value=”sa” /><br /> 
密      碼<input type=”password” name=”dbpwd” value=”123000″ /><br /> 
IP文件:<input type=”file” name=”ipfile” value=”C:\Users\cwliu\Desktop\1.txt” /><br /> 
<button onclick=”return startImport();”>導(dǎo)入</button> 
</form> 
</div> 
</body> 
</html> 


注:j為一個自定義的javascript類庫,中間包含了ajax功能的代碼 
后臺程序我們用來接收ajax發(fā)送的Post 請求: 
代碼如下: 

復(fù)制代碼代碼如下:


File:do.ashx?args=ImportIPData 
public void ProcessRequest(HttpContext context) 

if (context.Request.RequestType == “POST”) 

string action = context.Request["action"]; 
//提交IP數(shù)據(jù) 
if (string.IsNullOrEmpty(action) || action == “submit”) 

string dbserver = context.Request["dbserver"], tbname = context.Request["tbname"]; 
StringBuilder sb = new StringBuilder(500); 
sb.Append(“server=”).Append(dbserver).Append(“;database=”).Append(context.Request["dbname"]) 
.Append(“;uid=”).Append(context.Request["dbuid"]).Append(“;pwd=”).Append(context.Request["dbpwd"]); 
//保存數(shù)據(jù)庫連接字符串及數(shù)據(jù)表名 
HttpContext.Current.Session["ip_dbconnstring"] = sb.ToString(); 
HttpContext.Current.Session["ip_tablename"] = tbname; 
//讀取IP數(shù)據(jù)并緩存 
IList<string> ipList = new List<string>(); 
HttpPostedFile file = context.Request.Files[0]; 
using (StreamReader sr = new StreamReader(file.InputStream, Encoding.UTF8)) 

while (sr.Peek() != -1) 

ipList.Add(Regex.Replace(sr.ReadLine(), “\\s{2,}”, ” “)); 


HttpRuntime.Cache.Insert(“ip_data”, ipList); 
//想客戶端發(fā)送數(shù)據(jù)信息(Json格式) 
sb.Remove(0, sb.Length); 
sb.Append(“[{server:'").Append(dbserver) //服務(wù)器地址 
.Append("',count:'").Append(ipList.Count) //IP條數(shù) 
.Append("',insertNum:0") //本次插入條數(shù) 
.Append(",taskNum:0") //任務(wù)隊列條數(shù) 
.Append("}]“); 
context.Session["ip_info"] = sb.ToString(); 
//觸發(fā)父頁面開始插入數(shù)據(jù) 
context.Response.Write(“<script>window.parent.insertIP();</script>”); 

else 

using (SqlConnection conn = new SqlConnection(context.Session["ip_dbconnstring"] as string)) 

string tbname = context.Session["ip_tablename"] as string; 
//初始化,建表并返回信息 
if (action == “init”) 

SqlCommand cmd = new SqlCommand(“if not exists(select * from sysobjects where [name]='” + tbname + 
“‘ and xtype='u')BEGIN CREATE TABLE ” + tbname + “(id BIGINT PRIMARY KEY IDENTITY(1,1),sip NVARCHAR(15),eip NVARCHAR(15),area NVARCHAR(80),[name] NVARCHAR(80))END”, conn); 
conn.Open(); 
cmd.ExecuteNonQuery(); 
context.Response.Write(context.Session["ip_info"]); 

//插入數(shù)據(jù) 
else if (action == “insert”) 

IList<string> ipList = HttpRuntime.Cache["ip_data"] as IList<string>; 
StringBuilder sb = new StringBuilder(400); 
//默認(rèn)每次插入300條 
int insertNum; 
int.TryParse(context.Request["num"], out insertNum); 
if (insertNum < 1) insertNum = 300; 
SqlCommand cmd = new SqlCommand(); 
cmd.Parameters.AddRange( 
new SqlParameter[]{ 
new SqlParameter(“@sip”,null), 
new SqlParameter(“@eip”,null), 
new SqlParameter(“@area”,null), 
new SqlParameter(“@name”,null) 
}); 
cmd.Connection = conn; 
conn.Open(); 
string[] arr; 
for (var i = 0; i <= insertNum && i < ipList.Count; i++) 

arr = ipList[i].Split(‘ ‘); 
cmd.CommandText = “if not exists(select id from ” + tbname + 
” where sip='”+arr[0]+”‘and eip='”+arr[1]+”‘) INSERT INTO ” + tbname + 
” values(@sip,@eip,@area,@name)”; 
cmd.Parameters["@sip"].Value = arr[0]; 
cmd.Parameters["@eip"].Value = arr[1]; 
cmd.Parameters["@area"].Value = arr[2]; 
cmd.Parameters["@name"].Value =arr.Length>=4?arr[3]:”"; 
sb.Remove(0, sb.Length); 
cmd.ExecuteNonQuery(); 
ipList.Remove(ipList[i]); 

sb.Remove(0, sb.Length); 
sb.Append(“[{count:").Append(ipList.Count) //未插入IP的條數(shù) 
.Append(",insertNum:").Append(insertNum) 
.Append("}]“); 
context.Response.Write(sb.ToString()); 






當(dāng)處理上面的代碼之后IP數(shù)據(jù)將添加到你的數(shù)據(jù)庫中!總數(shù)是38萬條添加時間在1個小時左右! 
寫入到數(shù)據(jù)庫后的截圖如下: 
asp.net下將純真IP數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫中的代碼

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人片网址 | 榴莲视频成人在线观看 | 欧美 亚洲 一区 | 国产精品免费视频观看 | 久久亚洲欧美日韩精品专区 | 国产日韩精品久久 | 久草福利资源 | 欧美综合久久 | 亚洲经典一区 | 欧美一区二区三区 | 91嫩草视频在线 | 国产精品成人国产乱一区 | 亚洲电影在线播放 | 久久久久综合精品福利啪啪 | 日韩欧美手机在线 | 国产精品毛片a√一区 | 欧美激情五月 | 国产精品美女久久久久久不卡 | 超碰在线看 | 精品九九| 久色视频在线观看 | 久久精品国产一区二区三区不卡 | 欧美人交a欧美精品 | 91在线在线 | 精品一区二区久久久久黄大片 | 国产高清视频在线 | 在线观看成人小视频 | 成人午夜影院 | 欧美日韩三级 | 欧美国产日韩一区 | 国产在线精品一区二区 | 成人教育av | 综合久久99 | 欧美视频在线观看 | 天天操天天插 | 狠狠操一区二区三区 | 免费a网站| 蜜臀精品| 亚洲国产精品久久久久婷婷老年 | 精产品自偷自拍 | 涩涩视频在线看 |