<%@language = vbscript codepage = 936%>
<html>
<헤드>
<title> 제목없는 문서 </title>
<meta http-equiv = content-type content = text/html = gb2312;
</head>
<body>
<%
Dim FinishGetip, Showip, Allip
'/////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ////////////////////////// //////////////////////////////////////////////////////////////////////////////////4 //////////////////////////////////////////////////////////////////////////////////4 /// 곤
'프로그램이 매우 간소화되지 않은 다음 나중에 수정합니다.
'이 프로그램에 사용 된 데이터베이스는 "Feng Zhihong"- Written- "Hunting"- IP 데이터베이스 및
"Guohua Software Guohua Soft"-"Feng Guohua"-"글로벌 IP 주소 할당 테이블 .CHM"의 저자.
' "Feng Zhihong"과 "Feng Guohua"가 제공 한 데이터에 감사드립니다.
'데이터베이스에는 여전히 많은 중복 IP 주소가 있습니다.
'내 프로그램은 매우 서투른 것입니다.
'/////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ////////////////////////// //////////////////////////////////////////////////////////////////////////////////4 //////////////////////////////////////////////////////////////////////////////////4 /// 곤
'해결책:
'획득 된 클라이언트 IP는 일반적으로 202.11.25.1이고 데이터베이스의 IP 형식은 202.011.025.001이며,이를 얻어야합니다.
'클라이언트 IP는 데이터베이스에서 IP와 동일한 형식으로 변환됩니다.
'현재 우리가 사용하고있는 IP는 4 개의 섹션으로 나뉘어지고 3 개의 장소의 각 섹션이며 중간은 분리됩니다. "
'그래서 내 생각은 클라이언트 IP를 "4 개 단락으로 나누는 것입니다.", 즉 202/11/25/1
'각 단락을 개별적으로 확인하십시오. 3 자리 인 경우 3 미만이면이 섹션에서 2, 1 0 인 경우 2 0을 추가하십시오.
'형식 IP가 얻은 후 IP의 마지막 섹션이 제거됩니다. 값
'데이터베이스에서 볼 수 있기 때문에 STARTIP 및 ENDIP의 첫 세 단락은 동일하며 마지막 단락은 내부 서브넷 주소로 제거 할 수 있습니다.
'클라이언트 IP의 상위 11 개와 비교하여 모든 STARTIP 또는 ENDIP 필드의 상위 11 개를 차지하는 한 올바른 위치를 찾을 수 있습니다.
'/////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ////////////////////////// //////////////////////////////////////////////////////////////////////////////////4 //////////////////////////////////////////////////////////////////////////////////4 ///////// Gestman
함수 checkip_trueip ()
'클라이언트를 진짜 IP로 가져 가십시오
getClientip = request.servariables (http_x_forwardeded_for) '클라이언트가 프록시 서버를 사용하는 경우 requvervariables (remote_addr) 메소드를 사용하십시오
getClientIP =이면 그렇다면
getClientip = equest.servariables (remote_addr) '클라이언트가 에이전트를 사용하지 않으면 request.servariables (http_x_forwardededded_for)가 빈 값입니다
끝 If
checkip_trueip = getclientip
엔드 기능
'/////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ////////////////////////// //////////////////////////////////////////////////////////////////////////////////4 //////////////////////////////////////////////////////////////////////////////////4 //////////////////////////////////////////////////////////////////////////////////4 ////////////////////////ggig
함수 getAccessRecordset (db, sql, mark, read) '레코드 세트 객체 획득
set conn = getAccessconn (db) '입력 매개 변수는 db-database, sql-sql statement, mark, read is database reading method, 1,1은 읽고 쓰는 것입니다.
'constrs = provider = microsoft.jet.oledb.4.0;
'Conn.open Constr
getAccessRecordset = server.createObject (adodb.oldset)를 설정합니다.
getAccessRecordset.open sql, conn, mark, read
엔드 기능
'/////////////////////////////////////////////////////////////////////////4 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////4
함수 getAccessconn (db) ''연결 객체를 가져옵니다
getAccessconn = server.createObject (adodb.connection)를 설정합니다.
'SONGRE = DRIVER = {Microsoft Access Driver (*.mdb)};
constr = provider = microsoft.jet.oledb.4.0;
getAccessconn.open constr
엔드 기능
'/////////////////////////////////////////////////////////////////////////4 ////////////////////////////////////////////////////////////////////////////////////////////////4
희미한 getip
'getip = (trim (request.servervaribles (remote_addr))') '클라이언트에서 IP 가져 오기
'getip = (trim (request.querystring (comes))') '직접 IP 테스트를 입력하십시오.
'응답 .Write (getip & <br>)
'/////////////////////////////////////////////////////////////////////////4 ///////////////////////////////////////////////////////////////////////////////////////////////////4
함수 checkip_locations (checkstring) 'IP에서 분리 된 문자의 위치 함수로 돌아갑니다.
checkip_locations = inst (checkstring,.) '함수에 대한 함수를 제공합니다.
엔드 기능
'/////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ///////////////////////////////////////////////////////////4
'다음 함수는 디비전 IP이며 각 세분화가 얻은 후 오른쪽에 나머지 IP 문자열입니다.
함수 checkip_left (checkstring)
locations_left = checkip_locations (checkstring) '나머지 IP의 나머지 문자열에 첫 번째 장소를 얻으려면'
IPLENGTH_LEFT = LEN (CheckString) '나머지 IP 스트링의 길이를 얻으십시오.
divide_locations_left = iplength_left-locations_left '의 위치를 처음으로 얻으려면 나머지 문자열이 있습니다.
ipStr_Left = right (checkstring, divide_locations_left) '이 부서를 얻은 후 "나머지 IP는" "오른쪽에 남아 있습니다."
checkip_left = ipstr_left '는 위에서 얻은 문자열을 함수에 제공합니다.
엔드 기능
'/////////////////////////////////////////////////////////////////////////////4 ///////////////// Gestingead ///////////////////////////////////////////////////////////4
'다음 함수는 분할 된 IP이며 각 세그먼트 화가 획득 한 후에는'기호 '입니다.
함수 checkip_right (checkstring)
locations_right = CheckIP_Locations (CheckString) 'IP에서 얻었습니다. "
IPLENGTH_RIGHT = LEN (CheckString) 'IP 문자열 길이를 얻습니다
divide_locations_right = iplength_right-locations_right '의 위치를 얻으려면 오른쪽에서 왼쪽으로 몇 비트가 있습니다
ipStr11 = reft (왼쪽 (checkstring, local),.,) ')')
'IP가 4 개의 단락으로 나뉘면 각 섹션은 3 자리 미만이고 0
Len (ipstr11) = 2 인 경우 ipstr11 = 0 & ipstr11
LEN (ipstr11) = 3 인 경우 ipstr11 = ipStr11
LEN (ipstr11) = 1 인 경우 ipstr11 = 00 & ipStr11
checkip_right = ipStr11 '기호 앞에서 문자열을 가져옵니다.
끝 functi
중국에서 가장 큰 쿨 스테이션 데모 센터!