Asp は IP アクセスを制限し、特定の IP セグメントがこのサイトのコードにアクセスできないようにします。
ローカルの B2B または B2C の Web サイトには、大量のスパムが大量に投稿されていることがよくあります。私の解決策を皆さんと共有したいと思います。
コードは次のとおりです。
<%
「訪問者の住所を取得する
ip=リクエスト.サーバー変数(REMOTE_ADDR)
「許可される IP アドレス範囲は 10.0.0.0 ~ 10.68.63.255 です。」
allowip1=10.0.0.0
allowedip2=10.68.10.71
応答.writecheckip(ip,allowip1,allowip2)
functioncheckip(ip,allowip1,allowip2)
ディムチェック(4)
checkip=false
ipstr=split(ip,.)
allow1=split(allowip1,.)
allow2=split(allowip2,.)
ifcint(allow1(0))>cint(allow2(0))then'' は IP アドレス セグメントが正当かどうかを判断します
response.write禁止されたアクセス
終了関数
エンドイフ
fori=0toubound(ipstr)
ifcint(allow1(i))<cint(allow2(i))then
ifcint(allow1(i))=cint(ipstr(i))then
チェック(i)=true
checkip=true
出口用
それ以外
ifcint(ipstr(i))<cint(allow2(i))then
チェック(i)=true
checkip=true
出口用
それ以外
ifcint(ipstr(i))>cint(allow2(i))then
チェック(i)=false
checkip=false
出口用
それ以外
チェック(i)=true
checkip=true
エンドイフ
エンドイフ
エンドイフ
それ以外
ifcint(allow1(i))>cint(ipstr(i))orcint(allow1(i))<cint(ipstr(i))then
チェック(i)=false
checkip=false
ifi<>ubound(ipstr)then
出口用
エンドイフ
それ以外
チェック(i)=true
エンドイフ
エンドイフ
次
if(check(0)=trueandcheck(1)=trueandcheck(2)=trueandcheck(3)=false)and(cint(allow2(2))>cint(ipstr(2)))then
checkip=true
エンドイフ
エンドファンクション
%>
次のコードを ASP ページに追加して、効果をテストします。
次のようにコードをコピーします。
<%
'ブロックされた IP アドレス (セグメント) のコレクション。アスタリスクはワイルドカード文字で、通常は構成ファイルに保存されます。
Const BadIPGroup = 192.168.1.*|202.68.*.*|*.12.55.34|185.*.96.24|127.*.0.1|192.168.0.1
IsForbidIP(BadIPGroup) = True の場合
Response.Write(GetIP&IPアドレスはアクセス禁止)
Response.End()
終了する場合
'パラメータ vBadIP: ブロックする IP セグメント、IP アドレスを設定、複数の IP アドレス (セグメント) を区切るには記号を使用します。
'Bool を返す: ユーザー IP がブロックされた範囲内にある場合は True、それ以外の場合は False
関数 IsForbidIP(vBadIP)
ディムカウンター、arrIPPart、arrBadIP、arrBadIPPart、i、j
arrBadIP = Split(vBadIP, |)
arrIPPart = Split(GetIP(), .)
i = 0 から UBound(arrBadIP) へ
カウンタ = 0
arrBadIPPart = Split(arrBadIP(i), .)
j = 0 の場合 UBound(arrIPPart) へ
If(arrBadIPPart(j)) = * または Cstr(arrIPPart(j)) = Cstr(arrBadIPPart(j)) then
カウンタ = カウンタ + 1
終了する場合
次
カウンタ = 4 の場合
IsForbidIP = True
終了関数
終了する場合
次
IsForbidIP = False
終了機能
''顧客の IP アドレスを返します
関数 GetIP()
薄暗いIP
IP = リクエスト.サーバー変数(HTTP_X_FORWARDED_FOR)
IP = の場合、IP = Request.ServerVariables(REMOTE_ADDR)
GetIP=IP
終了機能
%>
このように、地域のIP範囲に応じてWebサイトへのアクセスのIP範囲を制限することができます。
私はこの方法を使用して、外国のユーザーが不正なソフトウェアを使用して私の Web サイトに悪意を持って情報を投稿するのを防ぎます。