이 글은 사용자의 IP Address를 보고 국문판을 보여줄 것인지 영문판을 보여줄 것인지를 자동으로 결정하는 방법을 설명합니다.

최신 IP Address 할당 정보는 KRNIC(www.krnic.net)에 가시면 있습니다.

=== 소 스 ====
< %
'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
' 작성자 : 정준명 (twiny@shinbiro.com)
' 작성일 : 1999년 4월 1일 (만우절이군요)
' 기 능 : Severvariables의 REMOTE_ADDR을 읽어와 국내할당된 IP Address 범위와 매칭
' 을 시켜 본 후 그 결과에 따라 특정 페이지로 리디렉션을 한다.
' REMOTE_HOST를 이용하면 훨씬 간단하게 할 수 있으나 호스트 이름이 없는 경우 IP Address로
' 바뀌기 때문에 완벽하게 하기 위해서는 REMOTE_ADDR의 값을 이용해야 한다.
'
'=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Dim strIPAddr
Dim strBClass
Dim strCClass
Dim pos, pos2, pos3
Dim Temp

'웹 서버에 접속한 사용자의 IP Address를 가져옵니다. (예- 203.239.136.1)
strIPAddr = Request.servervariables("REMOTE_ADDR")

'IP Address를 B Class와 C Class에 맞게 변환
' 이때 자리수를 무조건 3자리로 변환 된다. 즉 203.15.21.0일 경우 203.015.021.000으로

pos = InStr(1, strIPAddr, ".", 1)
strBClass = Left(strIPAddr, pos - 1)

pos2 = InStr(pos + 1, strIPAddr, ".", 1)
Temp = Mid(strIPAddr, pos + 1, pos2 - pos - 1)

'자리수를 3자리로 맞추는 루틴
If Len(Temp) = 1 Then
Temp = "00" & Temp
ElseIf Len(Temp) = 2 Then
Temp = "0" & Temp
End If
'B Class주소 완성
strBClass = strBClass & Temp

pos3 = InStr(pos2 + 1, strIPAddr, ".", 1)
Temp = Mid(strIPAddr, pos2 + 1, pos3 - pos2 - 1)
If Len(Temp) = 1 Then
Temp = "00" & Temp
ElseIf Len(Temp) = 2 Then
Temp = "0" & Temp
End If

'C Class주소 완성
strCClass = strBClass & Temp

Select Case strBClass
'우선 국내 할당된 B Class와 비교 한다.
Case "128134", "129254", "134075", "137068", "141223", "143248", "147006", "147043", "147046", "147047", _
"150150", "150183", "150197", "152099", "152149", "154010", "155230", "156147", "157197", "158044", _
"161122", "163152", "163180", "163239", "163243", "164124", "164125", "165132", "165133", "165141", _
"165186", "165194", "165213", "165229", "165243", "165244", "165246", "166079", "166103", "166104", _
"166125", "168078", "168115", "168126", "168131", "168154", "168188", "168219"

' 여기서 특정 동작을 넣으면 되겠죠?
response.redirect ("http://www.tradeorder.co.kr/kmain1.htm")

'국내 할당된 B Class에 속하지 않을 경우
Case Else
Select Case strCClass

'국내 할당된 C Class
Case "192100002", "192104015", "192132015", "20202099", "202020119"
response.redirect ("http://www.tradeorder.co.kr/kmain1.htm")
Case Else
If (strCClass >= 192132039 And strCClass < = 192132040) Or (strCClass >= 192132248 And strCClass < = 192132255) _
Or (strCClass >= 192203138 And strCClass < = 192203145) Or (strCClass >= 192245250 And strCClass < = 192245251) _
Or (strCClass >= 192203138 And strCClass < = 192203145) Or (strCClass >= 192245250 And strCClass < = 192245251) _
Or (strCClass >= 192249016 And strCClass < = 192249031) Or (strCClass >= 202020083 And strCClass < = 202020086) _
Or (strCClass >= 202020128 And strCClass < = 202020255) Or (strCClass >= 202021000 And strCClass < = 202021007) _
Or (strCClass >= 202030000 And strCClass < = 202030255) Or (strCClass >= 202031000 And strCClass < = 202031255) _
Or (strCClass >= 203224000 And strCClass < = 203255255) Or (strCClass >= 210090000 And strCClass < = 210091255) _
Or (strCClass >= 210092000 And strCClass < = 210127255) Or (strCClass >= 210178000 And strCClass < = 210183255) _
Or (strCClass >= 210216000 And strCClass < = 210219255) Then
response.redirect ("http://www.tradeorder.co.kr/kmain1.htm")
'국내 할당된 IP Address가 아닌 경우
Else
response.redirect ("http://www.tradeorder.co.kr/emain0.htm")
End If
End Select
End Select
%>
2005/06/15 13:36 2005/06/15 13:36

트랙백 주소 :: http://thinkit.or.kr/windows/trackback/130