라이브러리
프로그래밍언어, 각종코드, 관련동향, 논문 등의 저장소
웹 브라우저에서 IPv6, IPv4 접속 주소 표시
웹 브라우저에서 IPv6, IPv4 접속 주소 표시
최근 여러 웹사이트가 IPv4 뿐만 아니라 IPv6를 이용한 접속을 지원함에 따라 접속자의 IP 주소를 표시하는 경우가 많습니다.
특히 웹 브라우저만으로는 IPv6로 해당 웹페이지에 접속되었는지 IPv4로 접속되었는지 알 수가 없기 때문에, IPv6로 접속한 경우 접속자의 IPv6 주소를 표시하여 IPv6 접속여부를 알려주고 있습니다.
본 문서에서는 PHP와 ASP를 이용하여 IPv6와 IPv4 사용자에게 접속 IP 주소를 알려주고, IPv6와 IPv4 접속여부에 따른 차별화된 서비스가 가능한 간단한 웹 프로그래밍 소스를 소개하겠습니다.
** 본 문서에서는 해당 OS에서 이미 IPv6가 활성화되었다고 가정합니다. **
1. IP 주소 표시 시나리오
사용자가 IPv6로 접속한 경우에는 [Your IPv6 Address : <접속자의 IPv6 주소>] 형태의 메시지를 표시
예)Your IPv6 Address : 2001:2b8:80:11:cd0f:bde1:34d9:d240
사용자가 IPv4로 접속한 경우에는 [Your IPv4 Address : <접속자의 IPv4 주소>] 형태의 메시지를 표시
예)Your IPv4 Address : 202.30.83.64
2. IPv6-IPv4 접속판별 시나리오
일반적으로 IPv6 사용자와 IPv4 사용자를 구분하는 방법은 아래와 같습니다.[그림1]
우선 각종 웹 프로그래밍 언어에서 제공하는 함수를 이용하여 접속자의 IP 주소를 가져옵니다.
접속자의 IP 주소를 분석하여 IPv6 특성에 부합할 경우에는 IPv6 사용자로 판단하고, IPv4 특성에 부합할 경우에는 IPv4 사용자로 판단합니다. IP 종류 판단에 가장 널리 이용되는 방법은 IP 주소의 문자열을 검사하여 ':' (콜론)이 들어가 있는지 여부에 따라 IPv6 접속자인지 IPv4 접속자인지 구분하는 방법입니다.
IPv6 주소는 주소에 ':' (콜론)이 들어가 있고, IPv4는 그렇지 않습니다.
 
사용자 삽입 이미지
[그림1]
3. 샘플 사이트
IPv6와 IPv4 사용자 별로 차별화된 초기화면이나 기능을 제공하는 사이트 중 일본의 KAME 사이트와 한국의 IPv6 포탈(Vsix.Net)이 대표적입니다.
먼저 KAME 사이트(http://www.kame.net)는 IPv6로 접속하면 화면 상단의 거북이가 움직이고, IPv4로 접속하면 움직이지 않습니다.
이는 IPv6로 접속했을 때에는 화면상단의 그림을 움직이는 거북이로 대체하기 때문입니다.
 
사용자 삽입 이미지
[그림2] Dancing KAME
이와 유사하게 한국의 IPv6 포탈(Vsix.Net)역시 IP 종류에 따른 조건문을 두어 IPv6 접속자일 때에는 IPv4 사용자와는 다른 메시지를 화면에 뿌려줍니다.
 
사용자 삽입 이미지
[그림3] IPv6로 접속한 경우
 
사용자 삽입 이미지
[그림4] IPv4로 접속한 경우
이외에도 아래 웹사이트들이 있습니다.
KIESv6 사이트 ::http://www.kiesv6.or.kr
IPv6 DDNS 사이트 ::http://www.6dns.org
HS247 사이트 ::http://www.hs247.com
4. ASP를 이용한 IPv6 접속 또는 IPv4 접속 판단 모듈
ASP는 Windows 계열의 IIS(Internet Information Server)에서 지원하는 웹 프로그래밍 언어입니다.
Windows 2003 Server 계열의 IIS 6.0은 IPv6를 지원하며 ASP역시 IPv6를 지원하고 있습니다.
아래 소스를 분석해 보면
    접속자의 IP 주소 도출:: IP_Address = Request.ServerVariables("REMOTE_ADDR")
    IP 주소에서 :(콜론)의 개수 확인:: Result = instr(IP_Address,":")
    콜론의 개수가 1개 이상일 경우(즉 IPv6 주소일 경우):: If Result > 0 then
    IPv6 주소를 표시:: response.write "Your IPv6 Address : " & IP_Address
    그렇지 않은 경우 IPv4 주소로 판단, IPv4 관련 메시지를 표시합니다.

<html>

<head>

<title>IP Address Check</title>

</head>

 

<body>

 

<%@ Language=VBScript %>

 

<%

IP_Address = Request.ServerVariables("REMOTE_ADDR")

 

Result = instr(IP_Address,":")

 

If Result > 0 then

    response.write "Your IPv6 Address : " & IP_Address

Else

    response.write "Your IPv4 Address : " & IP_Address

End If

 

%>

 

</body> 

</html>

위 소스를 이용한 샘플사이는http://album.6dns.org/ipcheck.asp입니다.[그림5]. [그림6]
 
사용자 삽입 이미지
[그림5]
 
사용자 삽입 이미지
[그림6]
5. PHP를 이용한 IPv6 접속 또는 IPv4 접속 판단 모듈
PHP는 Linux, Solaris, Windows 계열에서 널리 이용되고 있는 웹 프로그래밍 언어입니다.
이미 설명한 ASP와 유사하게 내장 함수를 이용하여 접속자의 IP 주소를 가져오고 그 IP 주소를 분석하여 IPv6 접속자인지 IPv4 접속자인지 판단 합니다.
PHP 모듈은 내용이 많은 관계로 별도로 링크를 합니다.[IPv6/IPv4 확인 모듈 다운로드]
위 모듈에 대해 간단하게 설명을 하면 아래와 같습니다.
     function getMyIP함수는 접속자의 IP 주소를 가져오는 함수입니다.
     function validate_ipv4함수는 접속자의 IP 주소가 IPv4 주소인지 확인하는 함수입니다.
     function validate_ip함수는 접속자의 IP 주소가 IPv6 주소인지 확인하는 함수입니다.
     if (validate_ip($ip))접속자의 IP가 IPv6 형태이면 IPv6 경우에 해당되는 메시지를 표시합니다.
위 소스를 이용한 샘플사이는http://www.6dns.org/test/ipcheck.php입니다.[그림7]. [그림8]
 
사용자 삽입 이미지
[그림7]
 
사용자 삽입 이미지
[그림8]
이상 웹 프로그래밍 언어를 이용하여 IPv6, IPv4 이용자별로 차별화된 메시지를 표시하는 방법을 알아보았습니다. 위 소스코드를 이용하여 조건문에 보다 다양하고 차별화된 기능을 부여하면, IPv6와 IPv4 사용자에 대한 차별화된 서비스를 구현하실 수 있습니다.

'Technology > IPv6' 카테고리의 다른 글

IPv6 netsh 명령어 사용 1  (0) 2004.09.02
Microsoft Windows 각 버전별 IPv6 접속 가능여부 및  (0) 2004.08.17
IPv6 Audio Streaming Service  (0) 2004.08.05
IPv6 관련 사이트 설명 및 링크  (0) 2004.07.29
ipv6동향 2002  (0) 2004.07.29
ipv6 동향 2003  (0) 2004.07.29
  Comments,     Trackbacks