午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    asp動(dòng)態(tài)程序防采集的方法
    來(lái)源:易賢網(wǎng) 閱讀:726 次 日期:2014-08-25 15:33:36
    溫馨提示:易賢網(wǎng)小編為您整理了“asp動(dòng)態(tài)程序防采集的方法”,方便廣大網(wǎng)友查閱!

    昨天在網(wǎng)上看到一個(gè)防采集軟件,說(shuō)采集只訪問(wèn)當(dāng)前網(wǎng)頁(yè),不會(huì)訪問(wèn)網(wǎng)頁(yè)的圖片、JS等,今天突然想到,通過(guò)動(dòng)態(tài)程序和Js訪問(wèn)分別記錄訪問(wèn)者的IP,然后進(jìn)行IP判斷,由于采集過(guò)程不會(huì)訪問(wèn)JS,采集的時(shí)候只會(huì)查到用動(dòng)態(tài)程序記錄的IP,而不會(huì)有通過(guò)JS記錄的IP,從而實(shí)現(xiàn)網(wǎng)頁(yè)程序的防采集。

    防采集的原理非常簡(jiǎn)單,首先放一段動(dòng)態(tài)語(yǔ)句,把訪問(wèn)者的IP加入到數(shù)據(jù)庫(kù)的一個(gè)表里,然后在頁(yè)面底部加入一個(gè)JS,JS直接訪問(wèn)動(dòng)態(tài)頁(yè)面,將訪問(wèn)者的IP加入到數(shù)據(jù)庫(kù)的另外一個(gè)表里。再次訪問(wèn)的時(shí)候,從兩個(gè)表里讀IP數(shù)據(jù),然后判斷時(shí)間差,如果只在第一個(gè)表里找到,在第二個(gè)表里找不到,或者時(shí)間差超過(guò)10秒,則認(rèn)為是采集。

    優(yōu)點(diǎn)

    1.部署簡(jiǎn)單,只要是動(dòng)態(tài)語(yǔ)言就能很容易的實(shí)現(xiàn),無(wú)需借助服務(wù)器端程序

    2.殺傷力大,幾乎能封殺所有的采集過(guò)程

    缺點(diǎn)

    1.第一個(gè)缺點(diǎn)還是殺傷力大,如果需要實(shí)際使用需要考慮一些特殊情況,以免誤殺已經(jīng)殺掉搜索爬蟲(chóng)

    2.只適用于動(dòng)態(tài)網(wǎng)頁(yè),靜態(tài)頁(yè)面就沒(méi)法用了

    流程寫(xiě)的比較亂,不過(guò)原理本身就不是很復(fù)雜,下面附上程序例子,懂ASP的應(yīng)該很快就能看懂。

    程序例子(ASP+ACCESS)(測(cè)試程序下載):

    1.建立數(shù)據(jù)庫(kù)

    表1:Ip1,字段Ip1_Adderss(文本),Ip1_Time(日期/時(shí)間,默認(rèn)值=Now())

    表2:Ip2,字段Ip2_Adderss(文本),Ip2_Time(日期/時(shí)間,默認(rèn)值=Now())

    2.Index.asp(僅動(dòng)態(tài)代碼,全部代碼請(qǐng)見(jiàn)測(cè)試程序中)

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

    <%

    Dim Conn,Rs,Sqlstr,Ip,IpTime,IpTime2,NewUser

    NewUser=0

    Set Conn = Server.CreateObject("Adodb.Connection")

    Set Rs=Server.Createobject("Adodb.RecordSet")

    ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Data.mdb")

    Conn.Open ConnStr

    Ip=Request.ServerVariables("REMOTE_ADDR")

    Sqlstr="Select * From [Ip1] Where Ip1_Address='"&Ip&"' Order By Ip1_Id Desc"

    Rs.Open Sqlstr,Conn,1,3

    If Rs.Eof Then

    NewUser=1

    Application.Lock()

    Rs.AddNew()

    Rs("Ip1_Address")=Ip

    Rs.Update()

    Application.UnLock()

    Else

    IpTime=Rs("Ip1_Time")

    Application.Lock()

    Rs.AddNew()

    Rs("Ip1_Address")=Ip

    Rs.Update()

    Application.UnLock()

    End If

    Rs.Close

    If NewUser=0 Then

    Sqlstr="Select * From [Ip2] Where Ip2_Address='"&Ip&"' Order By Ip2_Id Desc"

    Rs.Open Sqlstr,Conn,1,3

    If Rs.Eof Then

    Rs.Close

    Response.Write("請(qǐng)勿采集!")

    Response.End()

    Else

    IpTime2=Rs("Ip2_Time")

    If DateDiff("s",IpTime2,IpTime)>10 Then

    Rs.Close

    Response.Write("請(qǐng)勿采集!")

    Response.End()

    End If

    End If

    Rs.Close

    End If

    %>

    3.Js.asp

    <%

    Dim Conn,Rs,Sqlstr,Ip

    Set Conn = Server.CreateObject("Adodb.Connection")

    Set Rs=Server.Createobject("Adodb.RecordSet")

    ConnStr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("Data.mdb")

    Conn.Open ConnStr

    Ip=Request.ServerVariables("REMOTE_ADDR")

    Sqlstr="Select * From [Ip2]"

    Rs.Open Sqlstr,Conn,1,3

    Application.Lock()

    Rs.AddNew()

    Rs("Ip2_Address")=Ip

    Rs.Update()

    Application.UnLock()

    Rs.Close

    %>

    4.Get.asp

    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>

    <%

    Response.Write(Server.HTMLEncode(GetHttpPage("http://localhost/Index.asp","GB2312")))

    '==============================

    '函 數(shù) 名:GetHttpPage

    '作 用:獲取頁(yè)面源代碼函數(shù)

    '參 數(shù):網(wǎng)址HttpUrl

    '==============================

    Function GetHttpPage(HttpUrl,Code)

    If IsNull(HttpUrl)=True Or HttpUrl="" Then

    GetHttpPage="A站點(diǎn)維護(hù)中!"

    Exit Function

    End If

    On Error Resume Next

    Dim Http

    Set Http=server.createobject("MSX"&"ML2.XML"&"HTTP")

    Http.open "GET",HttpUrl,False

    Http.Send()

    If Http.Readystate<>4 then

    Set Http=Nothing

    GetHttpPage="B站點(diǎn)維護(hù)中!"

    Exit function

    End if

    GetHttpPage=BytesToBSTR(Http.responseBody,Code)

    Set Http=Nothing

    If Err.number<>0 then

    Err.Clear

    GetHttpPage="C站點(diǎn)維護(hù)中!"

    Exit function

    End If

    End Function

    '==============================

    '函 數(shù) 名:BytesToBstr

    '作 用:轉(zhuǎn)換編碼函數(shù)

    '參 數(shù):字符串Body,編碼Cset

    '==============================

    Function BytesToBstr(Body,Cset)

    Dim Objstream

    Set Objstream = Server.CreateObject("ado"&"d"&"b.st"&"re"&"am")

    Objstream.Type = 1

    Objstream.Mode =3

    Objstream.Open

    Objstream.Write body

    Objstream.Position = 0

    Objstream.Type = 2

    Objstream.Charset = Cset

    BytesToBstr = Objstream.ReadText

    Objstream.Close

    set Objstream = nothing

    End Function

    %>

    更多信息請(qǐng)查看IT技術(shù)專(zhuān)欄

    更多信息請(qǐng)查看網(wǎng)絡(luò)編程
    易賢網(wǎng)手機(jī)網(wǎng)站地址:asp動(dòng)態(tài)程序防采集的方法
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢(xún)回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門(mén)公布的正式信息和咨詢(xún)?yōu)闇?zhǔn)!

    2025國(guó)考·省考課程試聽(tīng)報(bào)名

    • 報(bào)班類(lèi)型
    • 姓名
    • 手機(jī)號(hào)
    • 驗(yàn)證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡(jiǎn)要咨詢(xún) | 簡(jiǎn)要咨詢(xún)須知 | 新媒體/短視頻平臺(tái) | 手機(jī)站點(diǎn) | 投訴建議
    工業(yè)和信息化部備案號(hào):滇ICP備2023014141號(hào)-1 云南省教育廳備案號(hào):云教ICP備0901021 滇公網(wǎng)安備53010202001879號(hào) 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號(hào)
    云南網(wǎng)警備案專(zhuān)用圖標(biāo)
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢(xún)關(guān)注公眾號(hào):hfpxwx
    咨詢(xún)QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)
    云南網(wǎng)警報(bào)警專(zhuān)用圖標(biāo)