<codepage = 936 ٪>
<html>
<head>
<title> مستند بدون عنوان </title>
<meta http-equiv = content-type content = text/html ؛
</head>
<body>
<٪
Dim Finishgetip ، showip ، almip
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// //////////////////////////////////////////// gestman
البرنامج غير مبسط للغاية ، ثم تعديله لاحقًا
"قاعدة البيانات المستخدمة في هذا البرنامج هي-" Feng Zhihong "- CRITTEN-" Hacquent "-IP Database and
مؤلف كتاب "Guohua Software Guohua Soft"-"Feng Guohua"-"Table Table.
"بفضل البيانات المقدمة من" 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 رقماً من أي حقل من startip أو endip ، مقارنة بأعلى 11 من IP العميل ، يمكنك العثور على الموقع الصحيح
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////////// Gons
وظيفة checkip_trueip ()
"خذ العميل IP الحقيقي
getClientip = request.servervariables (http_x_forwarded_for) '' إذا كان العميل يستخدم خادم الوكيل ، فاستخدم طريقة request.servervariables (Remote_Addr)
إذا getClientip = إذن
getClientip = equest.ServerVariables (Remote_addr) '' إذا كان العميل لا يستخدم الوكيل ، فالطلب
إنهاء إذا
checkip_trueip = getClientip
وظيفة نهاية
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// //////////////////////////////////
وظيفة getAccessRecordset (DB ، SQL ، Mark ، قراءة) "'' '
set conn = getAccessConn (db) '' '' 'المسار النسبي لمعلمة الإدخال هو db-database ، عبارة SQL-SQL ، mark ، القراءة هي طريقة قراءة قاعدة البيانات ، 1،1 يتم قراءة 1،3 فقط ، يتم قراءة 1،3 تكتب للقراءة والكتابة قراءة وكتابة.
'' constr = provider = microsoft.jet.oledb.4.0 ؛
Conn.Open Constr
تعيين getAccessRecordSet = server.createBject (adodb.oldset)
getAccessRecordset.open SQL ، Conn ، Mark ، قراءة
وظيفة نهاية
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////
وظيفة getAccessConn (db) '' 'للحصول على كائن الاتصال
تعيين getAccessConn = server.createBject (adodb.connection)
'' constr = {Microsoft Access Driver (*.mdb)} ؛
constr = provider = microsoft.jet.oledb.4.0 ؛
getAccessConn.Open conntr
وظيفة نهاية
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ///////////////////////////////
قاتمة getip
'' getip = (trim (request.servervariables (remote_addr))) '' '
"getip = (trim (request.querystring (يأتي)))" اختبار IP إدخال بنفسي
'Response.write (getip & <br>)
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// /////////////////////////////
وظيفة checkip_locations (checkstring) '' '
checkip_lock_locations = instr (checkstring ،.) '' لإعطاء القيمة للوظيفة
وظيفة نهاية
'' ////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////// ////////////////////////////
"الوظائف التالية هي IP القسم ، وسلسلة IP المتبقية من IP على اليمين بعد الحصول على كل تجزئة
وظيفة checkip_left (checkstring)
SOCATIONS_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)
SOCATIONS_RIGHT = checkip_locations (checkstring) '' '
iplength_right = len (checkstring) '' 'احصل على طول سلسلة IP
divide_locations_right = iplength_right-locations_right '' 'للحصول على المقام الأول حيث ظهر الأول في سلسلة IP ، كم عدد البتات من اليمين إلى اليسار
IPSTR11 = TRIM (reft (يسار (checkstring ، socations_right) ،. ،) '' 'the "." على يسار "."
إذا تم تقسيم IP إلى 4 فقرات ، فكل فقرة أقل من 3 أرقام ، و 0
إذا كان LEN (IPSTR11) = 2 ثم IPSTR11 = 0 و IPSTR11
إذا كان LEN (IPSTR11) = 3 ثم IPSTR11 = IPSTR11
إذا كانت LEN (IPST1) = 1 ثم IPSTR11 = 00 و IPSTR11
checkip_right = IPSTR11 '' قبل ".