<codePage = 936%>
<html>
<Evista>
<title> Documento sin título </title>
<meta http-equiviv = content-type content = text/html;
</ablo>
<Body>
<%
Dim Finegetip, Showip, Allip
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// //////////////////////////////////// Gestman
'' El programa no está muy optimizado y luego lo modifíquelo más tarde
'' La base de datos utilizada en este programa es- "Feng Zhihong" -Written- "Hacquent" -IP Base de datos y
El autor de "Guohua Software Guohua Soft"-"Feng Guohua"-la "tabla de asignación de direcciones IP global.CHM" escrita por los dos
"Gracias a los datos proporcionados por" Feng Zhihong "y" Feng Guohua "
Hay muchas direcciones IP duplicadas en la base de datos, espero que alguien que esté interesado pueda eliminarla y reducir la base de datos.
'' Mi programa es muy torpe.
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// //////////////////////////////////// Gestman
'' Solución:
'' La IP del cliente obtenida es generalmente 202.11.25.1, y el formato IP en la base de datos es 202.011.025.001, que debe obtenerse.
'' La IP del cliente se convierte en el mismo formato que la IP en la base de datos
"Debido a que la IP actual que usamos se divide en 4 segmentos, cada sección de 3 lugares, y el medio está separado por".
"Entonces, mi idea es dividir la IP del cliente en 4 segmentos de".
'' Luego verifique cada párrafo por separado, si se trata de 3 bits, no cambiará;
Después de la IP de formato, se elimina la última sección de la IP, es decir, los primeros 11 bits que incluyen ".
'' Debido a que puede ver desde la base de datos, los tres primeros párrafos de Startip y Endip son los mismos, y el último párrafo es solo la dirección de subred interna, que se puede eliminar
'' Entonces, siempre que tome los primeros 11 dígitos de cualquier campo de inicio o endip, en comparación con los 11 principales de la IP del cliente, puede encontrar la ubicación correcta
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////////////////////////// ////////////////////////////// gons
Función checkip_trueip ()
'' Tome la IP real del cliente
getClientip = request.ServerVariables (http_x_forwarded_for) '' Si el cliente usa el servidor proxy, usa el método request.servervariables (remotos_addr).
Si getClientip = entonces
GetClientip = Equest.SerVerVariAns (remota_addr) '' Si el cliente no usa el proxy, entonces request.serverVariables (http_x_forwardedded_for) es un valor vacío.
final si
checkip_trueip = getClientip
función final
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////////
Function getAccessRecordSet (DB, SQL, Mark, Read) ''
establecer conn = getAccessConn (db) '' '' La ruta relativa del parámetro de entrada es db-database, sql-sql instrucción, mark, lectura es un método de lectura de base de datos, 1,1 se lee solo, 1,3 es leído y es leído y es leído y es leído y es leído y es leído y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lee y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea y se lea. Escribir para leer y escribir se lee y escribe.
'' Constr = Provider = Microsoft.Jet.OLEDB.4.0;
'Conn.open construye
Establezca getAccessRecordSet = Server.CreateObject (ADODB.RecordSet)
GetAccessRecordSet.open SQL, Conn, Mark, Leer
función final
'' //////////////////////////////////////////// /////////////////////////////////////////////// //////////////////////
Función getAccessConn (db) '' 'para obtener el objeto de conexión
Establecer getAccessConn = server.CreateObject (ADODB.Connection)
'' Constr = Driver = {Microsoft Access Driver (*.mdb)};
Constr = Provider = Microsoft.Jet.OLEDB.4.0;
getAccessconn.open construye
función final
'' //////////////////////////////////////////// /////////////////////////////////////////////// //////////////////////
Dim Getip
'' Getip = (trim (request.serverVariAbles (remoto_addr))) ''
'' Getip = (trim (request.querystring (viene))) '' Prueba de IP de entrada por mí mismo
'Response.Write (Getip & <br>)
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////
Función checkip_locations (checkstring) ''
Checkip_lock_locations = instr (checkstring,.) '' Para dar el valor a la función
función final
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////
'' Las siguientes funciones son la IP de la División, y la cadena restante de IP de la IP a la derecha después de que se obtenga cada segmentación
Función checkip_left (checkstring)
ubicaciones_left = checkip_locations (checkstring) '' ''
iplength_left = len (checkstring) '' La longitud de la cadena restante de la IP
Divide_locations_left = iplength_left-locations_left '' para obtener el primer lugar donde apareció el primero en la cadena IP ".".
iPStr_left = right (checkstring, divide_locations_left) '' 'Después de obtener la división, la cadena restante de la IP permanece a la derecha del ".".
Checkip_left = iPstr_left '' para dar la cadena obtenida anteriormente a la función
función final
'' //////////////////////////////////////////// /////////////////////////////////////////////// /////////////////////
"Las siguientes funciones son la IP y la cadena IP en el lado izquierdo del".
Función checkip_right (checkstring)
Locations_right = checkip_locations (checkstring) ''
iplength_right = len (checkstring) '' 'Obtenga la longitud de la cadena IP
Divide_locations_right = iplength_right-locations_right '' 'Para obtener el primer lugar donde apareció el primero en la cadena IP, cuántos bits están de derecha a izquierda
iPSTR11 = trim (reft (izquierda (checkstring, ubicaciones_right),.,) '' '' el "." A la izquierda del "."
'' Si la IP se divide en 4 párrafos, cada párrafo es inferior a 3 dígitos y 0
Si Len (iPSTR11) = 2 entonces IPSTR11 = 0 e IPSTR11
Si Len (iPSTR11) = 3 entonces iPSTR11 = iPSTR11
Si Len (iPSTR11) = 1 entonces IPSTR11 = 00 e IPSTR11
Checkip_right = iPSTR11 '' 'antes del ".