<%@Sprache = vbscript Codepage = 936%>
<html>
<kopf>
<titels> Ohne Titeldokument </title>
<meta http-äquiv = content-type content = text/html;
</head>
<body>
<%
Dim Finishgetip, Showip, Allip
'///////////////////////////////////////////////// ////////////////////////////////////// ./////////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// Gons
'Das Programm ist nicht sehr optimiert und modifiziert es später später
'Die in diesem Programm verwendete Datenbank ist "Feng Zhihong" -Written- "Jagd"- die IP-Datenbank und
Der Autor der "Guohua-Software Guohua Soft"-"Feng Guohua"-Die "Global IP-Adress-Allokationstabelle.Chm" von.
'Dank an die Daten von "Feng Zhihong" und "Feng Guohua"
'Es gibt noch viele doppelte IP -Adressen in der Datenbank.
„Mein Programm ist sehr ungeschickt.
'///////////////////////////////////////////////// ////////////////////////////////////// ./////////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// /// Gons
'Lösung:
'Die erhaltene Client -IP ist im Allgemeinen 202.11.25.1, und das IP -Format in der Datenbank beträgt 202.011.025.001, was erhalten werden muss
'Client IP konvertiert in der Datenbank in dasselbe Format wie IP
"Da die von uns derzeit verwendete IP in 4 Abschnitte, jeden Abschnitt von 3 Stellen, unterteilt ist und die Mitte durch" getrennt ist ".
"Meine Idee ist es also, die Kunden -IP in 4 Absätze von". ", Das heißt 202/11/25/1
Suchen Sie dann jeden Absatz separat, wenn es 3 Ziffern ist, nicht ändert sich er.
"Nachdem die Formatierungs -IP erhalten wurde, wird der letzte Abschnitt der IP entfernt, dh die Top 11 Bits einschließlich der Top 11 Bit im StartIP -Feld in der Datenbank, um denselben Wert zu finden, um dasselbe zu finden, um dasselbe zu finden, um dasselbe zu finden Wert
„Da aus der Datenbank ersichtlich ist, sind die ersten drei Absätze von StartIP und Endip gleich, und der letzte Absatz ist nur die interne Subnetzadresse, die entfernt werden kann
„Solange Sie die Top 11 eines beliebigen Bereichs von StartIP oder Endip im Vergleich zu den Top 11 der Client -IP einnehmen, finden Sie den richtigen Ort
'///////////////////////////////////////////////// ////////////////////////////////////// ./////////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////// Gestman
Funktion checkip_truep ()
'Nehmen Sie den Kunden echte IP
GetClientip = Request.Servervariables (http_x_forwardeded_for) 'Wenn der Client den Proxy -Server verwendet, verwenden Sie die Methode für Anforderung
Wenn getClientip = dann
GetClientip = equest.servervariables (Remote_Addr) 'Wenn der Client den Agenten nicht verwendet, dann ist servervariables (http_x_fordeddded_for) Methode
Ende wenn
checkip_trueip = getClientip
Endfunktion
'///////////////////////////////////////////////// ////////////////////////////////////// ./////////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// //////////////////////////// Ggig
Funktion getAccessRecordset (DB, SQL, Mark, Read) 'Das RecordSet -Objekt erhalten
Setzen Sie Conn = getAccessconn (DB) 'Eingabeparameter ist der relative Pfad der DB-Datenabase, SQL-SQL-Anweisung, Mark, Read ist eine Datenbank-Lesemethode, 1,1 wird gelesen und schreiben
'Const = Provider = Microsoft.Jet.OledB.4.0;
'Conn.open Const
Setzen Sie GetAccessRecordSet = server.createObject (adodb.oldset)
GetAccessRecordset.open SQL, conn, Mark, lesen
Endfunktion
'///////////////////////////////////////////////// /////////////////////////////////////////////////// .////////////////////////.
Funktion getAccessconn (db) '' das Verbindungsobjekt abrufen
Setzen Sie GetAccessConn = server.createObject (adodb.Connection)
'Const = Driver = {Microsoft Access Driver (*.mdb)};
Const = Provider = Microsoft.Jet.OledB.4.0;
GetAccessconn.open Const
Endfunktion
'///////////////////////////////////////////////// //////////////////////////////////////////////////////.
Dim Getip
'GetiP = (trim (request.servervariable
'Getip = (trim (request.queryString
'Response.write (getip & <br>)
'///////////////////////////////////////////////// ////////////////////////////////////////////////////////.
Funktion checkip_locations (Checkstring) 'Zurück zur Positionsfunktion des getrennten Zeichens in der IP
Checkip_locations = instr (checkstring,.) ', Um der Funktion Funktionen zu geben
Endfunktion
'///////////////////////////////////////////////// //////////////////////////////////////////////////.
'Die folgenden Funktionen sind die Abteilung IP und die verbleibende IP -Zeichenfolge der IP rechts nach jeder Segmentierung
Funktion checkip_left (Checkstring)
Popals_left = checkip_locations (checkstring) ', um den ersten Ort zu erhalten, an dem die erste in der verbleibenden Zeichenfolge der IP erschien
iPlength_Left = len (Checkstring) 'Erhalten Sie die Länge der verbleibenden Zeichenfolge der IP
DIVIDE_LOCATIONS_LEFT = IPLENGENE_LEFT-LOCATIONS_LEFT ', um die Position von "zu erhalten".
Ipstr_left = rechts (Checkstring, Divide_locations_Left) 'Nach dem Erhalt dieser Division, der verbleibenden IP -Zeichenfolge, die rechts von "" verbleibt ".
Checkip_left = ipstr_left 'gibt der oben erhaltenen Zeichenfolge der Funktion an
Endfunktion
'///////////////////////////////////////////////// //////////////////////////////////////////////////.
'Die folgenden Funktionen sind geteilt und die IP -Zeichenfolge auf der linken Seite des "" -Symbols ".
Funktion checkip_right (Checkstring)
Popals_right = checkip_locations (checkstring) 'in der IP erhalten "."
iPlength_Right = len (Checkstring) 'Holen Sie sich die IP -String -Länge
Divide_locations_right = iplength_right-locations_right ', um die Position von "zu erhalten".
IPStr11 = trim (links (Checkstring, lokal),.,
'Wenn die IP in 4 Absätze unterteilt ist, ist jeder Abschnitt weniger als 3 Ziffern und 0
Wenn Len (IPStr11) = 2 dann IPSTR11 = 0 & IPSTR11
Wenn Len (ipstr11) = 3 dann ipstr11 = ipstr11
Wenn Len (IPStr11) = 1 dann IPSTR11 = 00 & IPSTR11
Checkip_right = ipStr11 'Holen Sie sich die Zeichenfolge vor dem "."
Ende functi
Das größte Demonstrationszentrum für coole Station in China!