一些值得一看的代码asp
程序员文章站
2022-06-29 13:18:04
asp中对ip进行过滤限制函数 <% '获取访问者的地址 ip=request.servervariables("remote_addr") '允许的ip地址段为10...
asp中对ip进行过滤限制函数
<%
'获取访问者的地址
ip=request.servervariables("remote_addr")
'允许的ip地址段为10.0.0.0~10.68.63.255
allowip1="10.0.0.0"
allowip2="10.68.10.71"
response.write checkip(ip,allowip1,allowip2)
function checkip(ip,allowip1,allowip2)
dim check(4)
checkip=false
ipstr=split(ip,".")
allow1=split(allowip1,".")
allow2=split(allowip2,".")
if cint(allow1(0))>cint(allow2(0)) then
'判断ip地址段是否合法
response.write "ip地址段出错!"
exit function
end if
for i=0 to ubound(ipstr)
if cint(allow1(i))<cint(allow2(i)) then
if cint(allow1(i))=cint(ipstr(i)) then
check(i)=true
checkip=true
exit for
elseif cint(ipstr(i))<cint(allow2(i)) then
check(i)=true
checkip=true
exit for
elseif cint(ipstr(i))>cint(allow2(i)) then
check(i)=false
checkip=false
exit for
else
check(i)=true
checkip=true
end if
end if
end if
elseif cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then
check(i)=false
checkip=false
if i<>ubound(ipstr) then
exit for
end if
else
check(i)=true
end if
end if
next
if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then
checkip=true
end if
end function
%>
<%
'列举使用html表单提交的所有值
for each item in request.form
response.write request.form(item)
next
%>
列举使用html表单提交的所有值
利用asp得到图片尺寸大小
<%
imgpath="default_22.gif"
set pp=new imginfo
w = pp.imgw(server.mappath(imgpath))
h = pp.imgh(server.mappath(imgpath))
set pp=nothing
response.write "<img src='"&imgpath&"' border=0><br>宽:"&w&";高:"&h
class imginfo
dim aso
private sub class_initialize
set aso=createobject("adodb.stream")
aso.mode=3
aso.type=1
aso.open
end sub
private sub class_terminate
err.clear
set aso=nothing
end sub
private function bin2str(bin)
dim i, str
for i=1 to lenb(bin)
clow=midb(bin,i,1)
if ascb(clow)<128 then
str = str & chr(ascb(clow))
else
i=i+1
if i <= lenb(bin) then str = str & chr(ascw(midb(bin,i,1)&clow))
end if
next
bin2str = str
end function
private function num2str(num,base,lens)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wend
num2str = right(string(lens,"0") & num & ret,lens)
end function
private function str2num(str,base)
dim ret
ret = 0
for i=1 to len(str)
ret = ret *base + cint(mid(str,i,1))
next
str2num=ret
end function
private function binval(bin)
dim ret
ret = 0
for i = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,i,1))
next
binval=ret
end function
private function binval2(bin)
dim ret
ret = 0
for i = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
next
binval2=ret
end function
private function getimagesize(filespec)
dim ret(3)
aso.loadfromfile(filespec)
bflag=aso.read(3)
select case hex(binval(bflag))
case "4e5089":
aso.read(15)
ret(0)="png"
ret(1)=binval2(aso.read(2))
aso.read(2)
ret(2)=binval2(aso.read(2))
case "464947":
aso.read(3)
ret(0)="gif"
ret(1)=binval(aso.read(2))
ret(2)=binval(aso.read(2))
case "535746":
aso.read(5)
bindata=aso.read(1)
sconv=num2str(ascb(bindata),2 ,8)
nbits=str2num(left(sconv,5),2)
sconv=mid(sconv,6)
while(len(sconv)<nbits*4)
bindata=aso.read(1)
sconv=sconv&num2str(ascb(bindata),2 ,8)
wend
ret(0)="swf"
ret(1)=int(abs(str2num(mid(sconv,1*nbits+1,nbits),2)-str2num(mid(sconv,0*nbits+1,nbits),2))/20)
ret(2)=int(abs(str2num(mid(sconv,3*nbits+1,nbits),2)-str2num(mid(sconv,2*nbits+1,nbits),2))/20)
case "ffd8ff":
do
do: p1=binval(aso.read(1)): loop while p1=255 and not aso.eos
if p1>191 and p1<196 then exit do else aso.read(binval2(aso.read(2))-2)
do:p1=binval(aso.read(1)):loop while p1<255 and not aso.eos
loop while true
aso.read(3)
ret(0)="jpg"
ret(2)=binval2(aso.read(2))
ret(1)=binval2(aso.read(2))
case else:
if left(bin2str(bflag),2)="bm" then
aso.read(15)
ret(0)="bmp"
ret(1)=binval(aso.read(4))
ret(2)=binval(aso.read(4))
else
ret(0)=""
end if
end select
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""
getimagesize=ret
end function
public function imgw(pic_path)
set fso1 = server.createobject("scripting.filesystemobject")
if (fso1.fileexists(pic_path)) then
set f1 = fso1.getfile(pic_path)
ext=fso1.getextensionname(pic_path)
select case ext
case "gif","bmp","jpg","png":
arr=getimagesize(f1.path)
imgw = arr(1)
end select
set f1=nothing
else
imgw = 0
end if
set fso1=nothing
end function
public function imgh(pic_path)
set fso1 = server.createobject("scripting.filesystemobject")
if (fso1.fileexists(pic_path)) then
set f1 = fso1.getfile(pic_path)
ext=fso1.getextensionname(pic_path)
select case ext
case "gif","bmp","jpg","png":
arr=getimagesize(f1.path)
imgh = arr(2)
end select
set f1=nothing
else
imgh = 0
end if
set fso1=nothing
end function
end class
%>
客户端屏幕分辨率:request.servervariables("http_ua_pixels")
如何判断url格式是否符合规范?
<% function checkisurl(tmpstring)
dim c,i checkisurl = true tmpstring=lcase(trim(tmpstring)) if left(tmpstring,7)<>"http://" then tmpstri ... //"&tmpstring for i = 8 to len(checkisurl) c = lcase(mid(tmpstring, i, 1)) if instr("abcdefghijklmnopqrstuvwxyz_-./\", c) <= 0 and not isnumeric(c) then checkisurl = false exit function end if next if left(tmpstring, 1) = "." or right(tmpstring, 1) = "." then checkisurl = false exit function end if if instr(tmpstring, ".") <= 0 then checkisurl = false response.write "f3" exit function end if if instr(checkisurl, "..") > 0 then checkisurl = false end if
end function%><%
if checkisurl(request("u"))=true then %>恭喜,你的url通过!<%else %>对不起,你的url不合乎规范,请重新检查!<%end if%>
如何利用数据库内容建立一个下拉式列表?
<% mydsn="dsn=xur;uid=xur;pwd=xur"mysql="select * from authors where au_id<100"set conntemp=server.createobject("adodb.connection")conntemp.open mydsnset rstemp=conntemp.execute(mysql)if rstemp.eof thenresponse.write "噢,数据库为空!"response.write mysqlconntemp.closeset conntemp=nothingresponse.end end if%><%do until rstemp.eof %><%rstemp.movenextlooprstemp.closeset rstemp=nothingconntemp.closeset conntemp=nothing' 清空对象%>
'获取用户真实ip函数
function getip()
getip = request.servervariables("http_x_forwarded_for")
if getip = "" then getip = request.servervariables("remote_addr")
end function
'获取完整地址栏地址
function geturl()
geturl="http://"&request.servervariables("server_name")&request.servervariables("url")
if request.servervariables("query_string")<>"" then geturl=geturl&"?"& request.servervariables("query_string")
end function
'获取本页文件名
function selfname()
selfname = mid(request.servervariables("url"),instrrev(request.servervariables("url"),"/")+1)
end function
'获取文件后缀名
function getext(filename)
getext = mid(filename,instrrev(filename,".")+1)
end function
'求字符串长度函数
function getlength(str)
dim i,length
for i = 1 to len(str)
if asc(mid(str,i,1))<0 or asc(mid(str,i,1))>256 then
length = length+2
else
length = length+1
end if
next
getlength = length
end function
'过滤不良字符
function chkbadwords(fstring)
dim badwords,bwords,i
badwords = "我操|操你|操他|你妈的|他妈的|狗|杂种|屄|屌|王八|强奸|做爱|处女|泽民|*|法伦|*|*"
if not(isnull(badwords) or isnull(fstring)) then
bwords = split(badwords, "|")
for i = 0 to ubound(bwords)
fstring = replace(fstring, bwords(i), string(len(bwords(i)),"*"))
next
chkbadwords = fstring
end if
end function
'防止外部提交
function chkpost()
dim url1,url2
chkpost = false
url1 = cstr(request.servervariables("http_referer"))
url2 = cstr(request.servervariables("server_name"))
if mid(url1,8,len(url2))<>url2 then
chkpost = false
else
chkpost = true
end if
end function
'过滤html字符函数
function htmlencode(fstring)
if not isnull(fstring) and fstring <> "" then
fstring = replace(fstring, "&", "&")
fstring = replace(fstring, ">", ">")
fstring = replace(fstring, "<", "<")
fstring = replace(fstring, chr(32), " ")
fstring = replace(fstring, chr(9), " ")
fstring = replace(fstring, chr(34), """)
fstring = replace(fstring, chr(39), "'")
fstring = replace(fstring, chr(13), "")
fstring = replace(fstring, chr(10) & chr(10), "</p><p>")
fstring = replace(fstring, chr(10), "<br>")
fstring = replace(fstring, chr(255), " ")
htmlencode = fstring
end if
end function
'清除html标记
function striphtml(strhtml)
dim objregexp,stroutput
set objregexp = new regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "<.+?>"
stroutput = objregexp.replace(strhtml,"")
stroutput = replace(stroutput, "<","<")
stroutput = replace(stroutput, ">",">")
striphtml = stroutput
set objregexp = nothing
end function
<%
'获取访问者的地址
ip=request.servervariables("remote_addr")
'允许的ip地址段为10.0.0.0~10.68.63.255
allowip1="10.0.0.0"
allowip2="10.68.10.71"
response.write checkip(ip,allowip1,allowip2)
function checkip(ip,allowip1,allowip2)
dim check(4)
checkip=false
ipstr=split(ip,".")
allow1=split(allowip1,".")
allow2=split(allowip2,".")
if cint(allow1(0))>cint(allow2(0)) then
'判断ip地址段是否合法
response.write "ip地址段出错!"
exit function
end if
for i=0 to ubound(ipstr)
if cint(allow1(i))<cint(allow2(i)) then
if cint(allow1(i))=cint(ipstr(i)) then
check(i)=true
checkip=true
exit for
elseif cint(ipstr(i))<cint(allow2(i)) then
check(i)=true
checkip=true
exit for
elseif cint(ipstr(i))>cint(allow2(i)) then
check(i)=false
checkip=false
exit for
else
check(i)=true
checkip=true
end if
end if
end if
elseif cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then
check(i)=false
checkip=false
if i<>ubound(ipstr) then
exit for
end if
else
check(i)=true
end if
end if
next
if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then
checkip=true
end if
end function
%>
<%
'列举使用html表单提交的所有值
for each item in request.form
response.write request.form(item)
next
%>
列举使用html表单提交的所有值
利用asp得到图片尺寸大小
<%
imgpath="default_22.gif"
set pp=new imginfo
w = pp.imgw(server.mappath(imgpath))
h = pp.imgh(server.mappath(imgpath))
set pp=nothing
response.write "<img src='"&imgpath&"' border=0><br>宽:"&w&";高:"&h
class imginfo
dim aso
private sub class_initialize
set aso=createobject("adodb.stream")
aso.mode=3
aso.type=1
aso.open
end sub
private sub class_terminate
err.clear
set aso=nothing
end sub
private function bin2str(bin)
dim i, str
for i=1 to lenb(bin)
clow=midb(bin,i,1)
if ascb(clow)<128 then
str = str & chr(ascb(clow))
else
i=i+1
if i <= lenb(bin) then str = str & chr(ascw(midb(bin,i,1)&clow))
end if
next
bin2str = str
end function
private function num2str(num,base,lens)
dim ret
ret = ""
while(num>=base)
ret = (num mod base) & ret
num = (num - num mod base)/base
wend
num2str = right(string(lens,"0") & num & ret,lens)
end function
private function str2num(str,base)
dim ret
ret = 0
for i=1 to len(str)
ret = ret *base + cint(mid(str,i,1))
next
str2num=ret
end function
private function binval(bin)
dim ret
ret = 0
for i = lenb(bin) to 1 step -1
ret = ret *256 + ascb(midb(bin,i,1))
next
binval=ret
end function
private function binval2(bin)
dim ret
ret = 0
for i = 1 to lenb(bin)
ret = ret *256 + ascb(midb(bin,i,1))
next
binval2=ret
end function
private function getimagesize(filespec)
dim ret(3)
aso.loadfromfile(filespec)
bflag=aso.read(3)
select case hex(binval(bflag))
case "4e5089":
aso.read(15)
ret(0)="png"
ret(1)=binval2(aso.read(2))
aso.read(2)
ret(2)=binval2(aso.read(2))
case "464947":
aso.read(3)
ret(0)="gif"
ret(1)=binval(aso.read(2))
ret(2)=binval(aso.read(2))
case "535746":
aso.read(5)
bindata=aso.read(1)
sconv=num2str(ascb(bindata),2 ,8)
nbits=str2num(left(sconv,5),2)
sconv=mid(sconv,6)
while(len(sconv)<nbits*4)
bindata=aso.read(1)
sconv=sconv&num2str(ascb(bindata),2 ,8)
wend
ret(0)="swf"
ret(1)=int(abs(str2num(mid(sconv,1*nbits+1,nbits),2)-str2num(mid(sconv,0*nbits+1,nbits),2))/20)
ret(2)=int(abs(str2num(mid(sconv,3*nbits+1,nbits),2)-str2num(mid(sconv,2*nbits+1,nbits),2))/20)
case "ffd8ff":
do
do: p1=binval(aso.read(1)): loop while p1=255 and not aso.eos
if p1>191 and p1<196 then exit do else aso.read(binval2(aso.read(2))-2)
do:p1=binval(aso.read(1)):loop while p1<255 and not aso.eos
loop while true
aso.read(3)
ret(0)="jpg"
ret(2)=binval2(aso.read(2))
ret(1)=binval2(aso.read(2))
case else:
if left(bin2str(bflag),2)="bm" then
aso.read(15)
ret(0)="bmp"
ret(1)=binval(aso.read(4))
ret(2)=binval(aso.read(4))
else
ret(0)=""
end if
end select
ret(3)="width=""" & ret(1) &""" height=""" & ret(2) &""""
getimagesize=ret
end function
public function imgw(pic_path)
set fso1 = server.createobject("scripting.filesystemobject")
if (fso1.fileexists(pic_path)) then
set f1 = fso1.getfile(pic_path)
ext=fso1.getextensionname(pic_path)
select case ext
case "gif","bmp","jpg","png":
arr=getimagesize(f1.path)
imgw = arr(1)
end select
set f1=nothing
else
imgw = 0
end if
set fso1=nothing
end function
public function imgh(pic_path)
set fso1 = server.createobject("scripting.filesystemobject")
if (fso1.fileexists(pic_path)) then
set f1 = fso1.getfile(pic_path)
ext=fso1.getextensionname(pic_path)
select case ext
case "gif","bmp","jpg","png":
arr=getimagesize(f1.path)
imgh = arr(2)
end select
set f1=nothing
else
imgh = 0
end if
set fso1=nothing
end function
end class
%>
客户端屏幕分辨率:request.servervariables("http_ua_pixels")
如何判断url格式是否符合规范?
<% function checkisurl(tmpstring)
dim c,i checkisurl = true tmpstring=lcase(trim(tmpstring)) if left(tmpstring,7)<>"http://" then tmpstri ... //"&tmpstring for i = 8 to len(checkisurl) c = lcase(mid(tmpstring, i, 1)) if instr("abcdefghijklmnopqrstuvwxyz_-./\", c) <= 0 and not isnumeric(c) then checkisurl = false exit function end if next if left(tmpstring, 1) = "." or right(tmpstring, 1) = "." then checkisurl = false exit function end if if instr(tmpstring, ".") <= 0 then checkisurl = false response.write "f3" exit function end if if instr(checkisurl, "..") > 0 then checkisurl = false end if
end function%><%
if checkisurl(request("u"))=true then %>恭喜,你的url通过!<%else %>对不起,你的url不合乎规范,请重新检查!<%end if%>
如何利用数据库内容建立一个下拉式列表?
<% mydsn="dsn=xur;uid=xur;pwd=xur"mysql="select * from authors where au_id<100"set conntemp=server.createobject("adodb.connection")conntemp.open mydsnset rstemp=conntemp.execute(mysql)if rstemp.eof thenresponse.write "噢,数据库为空!"response.write mysqlconntemp.closeset conntemp=nothingresponse.end end if%><%do until rstemp.eof %><%rstemp.movenextlooprstemp.closeset rstemp=nothingconntemp.closeset conntemp=nothing' 清空对象%>
'获取用户真实ip函数
function getip()
getip = request.servervariables("http_x_forwarded_for")
if getip = "" then getip = request.servervariables("remote_addr")
end function
'获取完整地址栏地址
function geturl()
geturl="http://"&request.servervariables("server_name")&request.servervariables("url")
if request.servervariables("query_string")<>"" then geturl=geturl&"?"& request.servervariables("query_string")
end function
'获取本页文件名
function selfname()
selfname = mid(request.servervariables("url"),instrrev(request.servervariables("url"),"/")+1)
end function
'获取文件后缀名
function getext(filename)
getext = mid(filename,instrrev(filename,".")+1)
end function
'求字符串长度函数
function getlength(str)
dim i,length
for i = 1 to len(str)
if asc(mid(str,i,1))<0 or asc(mid(str,i,1))>256 then
length = length+2
else
length = length+1
end if
next
getlength = length
end function
'过滤不良字符
function chkbadwords(fstring)
dim badwords,bwords,i
badwords = "我操|操你|操他|你妈的|他妈的|狗|杂种|屄|屌|王八|强奸|做爱|处女|泽民|*|法伦|*|*"
if not(isnull(badwords) or isnull(fstring)) then
bwords = split(badwords, "|")
for i = 0 to ubound(bwords)
fstring = replace(fstring, bwords(i), string(len(bwords(i)),"*"))
next
chkbadwords = fstring
end if
end function
'防止外部提交
function chkpost()
dim url1,url2
chkpost = false
url1 = cstr(request.servervariables("http_referer"))
url2 = cstr(request.servervariables("server_name"))
if mid(url1,8,len(url2))<>url2 then
chkpost = false
else
chkpost = true
end if
end function
'过滤html字符函数
function htmlencode(fstring)
if not isnull(fstring) and fstring <> "" then
fstring = replace(fstring, "&", "&")
fstring = replace(fstring, ">", ">")
fstring = replace(fstring, "<", "<")
fstring = replace(fstring, chr(32), " ")
fstring = replace(fstring, chr(9), " ")
fstring = replace(fstring, chr(34), """)
fstring = replace(fstring, chr(39), "'")
fstring = replace(fstring, chr(13), "")
fstring = replace(fstring, chr(10) & chr(10), "</p><p>")
fstring = replace(fstring, chr(10), "<br>")
fstring = replace(fstring, chr(255), " ")
htmlencode = fstring
end if
end function
'清除html标记
function striphtml(strhtml)
dim objregexp,stroutput
set objregexp = new regexp
objregexp.ignorecase = true
objregexp.global = true
objregexp.pattern = "<.+?>"
stroutput = objregexp.replace(strhtml,"")
stroutput = replace(stroutput, "<","<")
stroutput = replace(stroutput, ">",">")
striphtml = stroutput
set objregexp = nothing
end function
上一篇: asp实现批量录入数据的实现