يمكن اعتبار القيام بصيد ASP.Net هذه الأيام بمثابة مقدمة لي. الفكرة بسيطة للغاية، والغرض الرئيسي هو تحديد الشعار الذي تم إرجاعه بواسطة المضيف البعيد وتحديد خادم المضيف البعيد. قد لا يكون هذا دقيقًا لأن المسؤولين المؤهلين قد يقومون بتعديل الشعار.
الكود كما يلي (تم العثور عليه من خلال عملية البحث على الويب باستخدام VB.Net)
Dim swWriter As StreamWriter
'يستخدم لنقل البيانات إلى تدفق بيانات البنية التحتية للشبكة
تعتيم nsStream كـ NetworkStream
'إنشاء تدفق بيانات قائم على الشبكة لإرسال البيانات
تعتيم tcpClient2 باسم TcpClient
ومن خلاله، يتم تقديم طلب اتصال TCP إلى المضيف البعيد
خافت اسم المضيف كسلسلة
Dim srRead كـ StreamReader
'قراءة البيانات من دفق بيانات البنية التحتية للشبكة
"مطاردة خدمة HTTP."
إذا كان TcpConnect(ZSIP, 80) = "CG" إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: غير معروف"
يحاول
'tcpClient = TcpClient جديد (عنوان IP، منفذ)
tcpClient2 = جديد TcpClient(ZSIP.ToString(), 80)
tcpClient2.ReceiveTimeout = 1000000
tcpClient2.SendTimeout = 1000000
'قم بإجراء طلب اتصال TCP للمنفذ 8000 للمضيف البعيد
nsStream = tcpClient2.GetStream()
'تطبيق والحصول على تدفق البيانات الأساسية للشبكة لنقل البيانات
swWriter = جديد StreamWriter(nsStream)
swWriter.WriteLine("الحصول على /index.htm HTTP/1.1")
swWriter.WriteLine("المضيف:" & IP.Text)
swWriter.WriteLine("قبول:*/*")
swWriter.WriteLine("المرجع:")
سوWriter.WriteLine()
'قم بتحديث البيانات في دفق البيانات الحالي
سوWriter.Flush()
srRead = New StreamReader(nsStream, Encoding.Default)
'قم بتهيئة مثيل StreamReader باستخدام دفق البيانات الأساسية للشبكة التي تم الحصول عليها
خافت L كعدد صحيح = 0
افعل بينما لا srRead.Peek = -1 وL < 20
StrHttp = StrHttp & srRead.ReadLine()
ل = ل + 1
حلقة
إذا كان InStr(StrHttp, "IIS") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: إصدار IIS غير معروف"
SystemFW = "WindowsNT/2000/XP/2003"
نهاية إذا
إذا كان InStr(StrHttp, "Apache") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: إصدار Apache غير معروف"
نهاية إذا
إذا كان InStr(StrHttp, "Netscape-Enterprise") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: إصدار Netscape-Enterprise غير معروف"
نهاية إذا
إذا كان InStr(StrHttp, "Microsoft-IIS/5.0") > 0 ثم
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: IIS 5.0"
SystemFW = "Windows2000"
نهاية إذا
إذا كان InStr(StrHttp, "Microsoft-IIS/5.1") > 0 ثم
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: IIS 5.1"
SystemFW = "Windows2000/XP"
نهاية إذا
إذا كان InStr(StrHttp, "Microsoft-IIS/6.0") > 0 ثم
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: IIS 6.0"
SystemFW = "Windows2003"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/2") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 2.x"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/2.0.54") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 2.0.54"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/2.0.52") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 2.0.52"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/2.1.6") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 2.1.6"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.2") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.x"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.20") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.20"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.23") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.23"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.26") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.26"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.27") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.27"
نهاية إذا
إذا كان InStr(StrHttp, "Apache/1.3.33") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Apache 1.3.33"
نهاية إذا
إذا كان InStr(StrHttp, "Netscape-Enterprise/4.1") > 0 إذن
OppHTTP.Text = "تم بدء خدمة HTTP! نوع برنامج الخدمة: Netscape-Enterprise 4.1"
نهاية إذا
إذا كان InStr(StrHttp, "Unix") > 0 إذن
SystemFW = "نظام يشبه Unix/Linux"
نهاية إذا
يمسك
End Try
، لم يتم تعريف بعض المتغيرات، ويمكنك اكتشاف ذلك بنفسك.
ZSIP: تحليل IP الحقيقي