프로그래밍/ASP, Javascript
IP Address를 Long type으로 변환하기
멍멍대왕
2006. 3. 7. 18:20
국가별 IP 테이블에서 값을 비교하기 위해 "xxx.xxx.xxx.xxx" 형식의 IP Address를 다음과 같이 DB에 있는 값과 비교할 수 있도록 변환해준다.
아래 예제는 C#에서 사용하고 있는 클래스중 값을 IP Address를 Long 타입으로 변환하는 함수이다.
static public uint IPAddressToLongBackwards(string IPAddr)
{
System.Net.IPAddress oIP=System.Net.IPAddress.Parse(IPAddr);
byte[] byteIP=oIP.GetAddressBytes();
uint ip=(uint)byteIP[0]<<24;
ip+=(uint)byteIP[1]<<16;
ip+=(uint)byteIP[2]<<8;
ip+=(uint)byteIP[3];
return ip;
}
실제 SQL 문은 다음과 같이 구성하면 된다. 아래 예제 SQL문에서 @ipaddr_no는 위의 함수를 이용하여 변환된 값이다.
SELECT * FROM GeoIPCountryWhois WHERE @ipaddr_no BETWEEN start_ip_no AND end_ip_no