<CodePage = 936%>
<html>
<голова>
<Название> без названия документа </title>
<meta http-equiv = content-type content = text/html;
</head>
<тело>
<%
Dim FinishiceTip, Scisip, Allip
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////Gestman
«Программа не очень оптимизирована, а затем изменить ее позже
'' База данных, используемая в этой программе, является «фэн-Zhihong»- wwritten- «hacquent» база данных и IP и
Автор «Guohua Software Software Guohua Soft»-«Feng Guohua»-«Глобальная IP-адреса Table.chm», написанная двумя
«Благодаря данным, предоставленным" Feng Zhihong "и" Feng Guohua "
В базе данных есть много дублирующих IP -адресов, я надеюсь, что кто -то, кто заинтересован, может удалить его и уменьшить базу данных
«Моя программа очень неуклюжая.
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////Gestman
'' Решение:
«Полученный IP -клиент, как правило, составляет 202.11.25.1, а формат IP в базе данных составляет 202.011.025.001, который необходимо получить.
'' IP клиента преобразуется в тот же формат, что и IP в базе данных
«Потому что текущий IP, который мы используем, делится на 4 сегмента, каждый раздел из 3 мест, а середина разделена».
«Итак, моя идея - разделить IP клиента на 4 сегмента от« ».
«Затем проверьте каждый абзац отдельно, если это 3 бита, он не изменится;
После того, как IP -форматирование удаляется последняя часть IP, то есть первые 11 бит, включая «».
«Поскольку вы можете видеть из базы данных, первые три параграфа Startip и Endip одинаковы, а последний абзац - это просто внутренний адрес подсети, который можно удалить
'' Так до тех пор, пока вы принимаете первые 11 цифр любого поля запуска или Endip, по сравнению с 11 лучшими IP клиента, вы можете найти правильное местоположение
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////Gons
Function checkip_trueip ()
'' Возьмите клиента Real IP
getClientip = request.servervariables (http_x_forwarded_for) '' Если клиент использует метод прокси -сервера, используйте метод
Если getClientip = тогда
GetClientip = equest.servervariables (remote_addr) '' Если клиент не использует прокси, то запрос
конец, если
checkip_trueip = getClientip
конечная функция
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Функция getAccessRecordset (DB, SQL, Mark, Read) ''
Установите conn = getAccessConn (db) '' '' '' Относительным путем входного параметра является Db-датабаза, оператор SQL-SQL, Mark, чтение является методом считывания базы данных, 1,1 читается только, 1,3 прочитал и Напишите для чтения, а написание читается и пишите.
'Constr = Provider = microsoft.jet.oledb.4.0;
'Conn.Open Constr
Установить getAccessRecordset = server.createObject (adodb.recordset)
Getaccessrecordset.open sql, conn, mark, читать
конечная функция
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Функция getAccessConn (db) '' ', чтобы получить объект соединения
Установить getAccessConn = server.createObject (adodb.connection)
'' Constra = river = {Microsoft Access Driver (*.mdb)};
Constra = Provider = microsoft.jet.oledb.4.0;
getaccessconn.open constr
конечная функция
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Dim Getip
'' Getip = (trim (request.servervariables (remote_addr))) '' '
'' Getip = (trim (request.QueryString (приходит))) '' Входной IP -тест сам по себе
'Response.write (getip & <br>)
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////S
Function checkip_locations (checkstring) ''
Checkip_lock_locations = instr (checkstring ,.) '', чтобы дать значение функции
конечная функция
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
'' Следующие функции - это IP -адрес деления, а IP -оставшаяся строка IP на сразу после каждой сегментации получается
Function checkip_left (checkstring)
locations_left = checkip_locations (checkstring) '' '' '' ''
iplength_left = len (checkstring) '' длина оставшейся строки IP
Divide_locations_left = iplength_left-locations_left '', чтобы получить первое место, где первое появилось в IP-строке ".". "
ipstr_left = right (checkstring, divide_locations_left) '' 'После получения деления оставшаяся строка IP остается справа от ".".
Checkip_left = ipstr_left '', чтобы дать строку, полученную выше для функции
конечная функция
'' //////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////
«Следующие функции - это IP, и IP -строка на левой стороне« ».
Функция checkip_right (checkstring)
Locations_right = checkip_locations (checkstring) ''
iplength_right = len (checkstring) '' 'Получите длину строки IP
Divide_locations_right = iplength_right-locations_right '' ', чтобы получить первое место, где первое появилось в IP-строке, сколько битов справа налево
ipstr11 = trim (reft (left (checkstring, locations_right),.,) '' '' '. ".
'' Если IP разделен на 4 абзаца, каждый абзац меньше 3 цифр и 0
Если len (ipstr11) = 2, то ipstr11 = 0 & ipstr11
Если len (ipstr11) = 3, то ipstr11 = ipstr11
Если len (ipstr11) = 1, то ipstr11 = 00 и ipstr11
Checkip_right = ipstr11 '' до "."