<Codepage = 936%>
<html>
<kopf>
<titels> Ohne Titeldokument </title>
<meta http-äquiv = content-type content = text/html;
</head>
<body>
<%
Dim Finishgetip, Showip, Allip
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////////////////////// Gestman
'' Das Programm ist nicht sehr optimiert und modifiziert es später später
'' Die in diesem Programm verwendete Datenbank ist "Feng Zhihong" -Written- "Hacquent" -ip-Datenbank und
Der Autor der "Guohua-Software Guohua Soft"-"Feng Guohua"-Die "Global IP-Adresszuweisungstabelle.Chm", die von den beiden geschrieben wurde
'' Dank an die Daten von "Feng Zhihong" und "Feng Guohua"
Es gibt viele doppelte IP -Adressen in der Datenbank. Ich hoffe, jemand, der interessiert ist, kann sie löschen und die Datenbank reduzieren
'' Mein Programm ist sehr ungeschickt.
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// /////////////////////////////////////////// Gestman
'' Lösung:
'' Die erhaltene Client -IP ist im Allgemeinen 202.11.25.1 und das IP -Format in der Datenbank 202.011.025.001, die erhalten werden muss.
'' Die Client -IP wird in der Datenbank in dasselbe Format wie IP konvertiert
'' Weil die aktuelle IP, die wir verwenden, in 4 Segmente, jeden Abschnitt von 3 Stellen, unterteilt ist und die Mitte durch "getrennt wird".
'' Meine Idee ist es also, die Kunden -IP in 4 Segmente von "zu unterteilen".
'' Überprüfen Sie dann jeden Absatz separat, wenn es 3 Bit ist, ändert sich nicht.
Nach dem Formatierungs -IP wird der letzte Abschnitt der IP entfernt, dh die ersten 11 Bits, einschließlich der Top 11 Bits im StartIP -Feld in der Datenbank, finden Sie denselben Wert, um denselben Wert zu finden
'' Weil Sie aus der Datenbank sehen können
'' So lange Sie die ersten 11 Ziffern eines beliebigen Bereichs von StartIP oder Endip im Vergleich zu den Top 11 der Client -IP einnehmen, finden Sie den richtigen Standort
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////// ////////////////////////////////////////////////// ///////////////////////////////////// Gons
Funktion checkip_truep ()
'' Nehmen Sie den Kunden echte IP
GetClientip = Request.Servervariables (http_x_forwarded_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 Proxy nicht verwendet, dann ist servervariables (http_x_forwardedded_for) Methode
Ende wenn
checkip_trueip = getClientip
Endfunktion
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////.
Funktion getAccessRecordset (DB, SQL, Mark, Read) '' '
Setzen Sie conn = getAccessconn (db) '' '' '' '' 'Der relative Pfad des Eingabeparameters ist DB-DATABASE, SQL-SQL-Anweisung, Mark, Read ist eine Datenbank-Lesemethode, 1,1 wird nur gelesen, 1,3 wird gelesen und Schreiben Sie zum Lesen und Schreiben 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) '', um das Verbindungsobjekt zu erhalten
Setzen Sie GetAccessConn = server.createObject (adodb.Connection)
'' contr = driver = {Microsoft Access Treiber (*.mdb)};
Const = Provider = Microsoft.Jet.OledB.4.0;
GetAccessconn.open Const
Endfunktion
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////////
Dim Getip
'' GetiP = (trim (request.servervariables (remote_addr)) '' ''
'' GetiP = (trim (request.queryString
'Response.write (getip & <br>)
/////////////// .////////// .////////. ////////////////////////////////////////////////// ////////////////////////////////////////////////
Funktion checkip_locations (Checkstring) ''
Checkip_lock_locations = instr (prüfstring,.) '', Um den Wert für die Funktion 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)
POOLES_LEFT = CHECKIP_LOCATIONS (Checkstring) '' '' '
iPlength_Left = len (Checkstring) '' Die Länge der verbleibenden Zeichenfolge der IP
DIVIDE_LOCATIONS_LEFT = IPLENGENT_LEFT-LOCATIONS_LEFT '', um den ersten Platz zu erhalten, an dem die erste in der IP-Zeichenfolge erschien "."
ipstr_left = rechts (Checkstring, Divide_locations_Left) '', nachdem die Abteilung erhalten wurde, die verbleibende Zeichenfolge der IP auf der rechten Seite des "".
Checkip_left = ipstr_left '', um die oben erhaltene Zeichenfolge für die Funktion anzugeben
Endfunktion
/////////////// .////////// .////////. ////////////////////////////////////////////////// ///////////////////////////////////////////////
'' Die folgenden Funktionen sind die IP und die IP -Zeichenfolge auf der linken Seite des "" -Symbols ".
Funktion checkip_right (Checkstring)
Popals_right = checkip_locations (checkstring) '' ''
iPlength_Right = len (Checkstring) ''
Divide_locations_right = iPlength_right-locations_right '' ', um den ersten Platz zu erhalten, an dem die erste in der IP-Zeichenfolge erschien, wie viele Bits von rechts nach links sind
ipstr11 = trimm (Reft (links (Checkstring, popals_right),.,) '' 'the "." links vom "".
'' Wenn die IP in 4 Absätze unterteilt ist, beträgt jeder Absatz 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 '' Vor dem "Symbol".