程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.Net寫追捕方法

ASP.Net寫追捕方法

編輯:關於ASP.NET

在寫程序之間,飛刀還是讓大家看看追捕是如何通過IP來判斷用戶的來源地的(恩恩,現在就要揭揭"追捕"的"老底"了,大家好好聽啦)。

如果讓您去編寫追捕軟件的話,我想您首先想到的就是去收集一張IP分配表,並將他們存入數據庫以便讀取。在追捕軟件中,確實存在一張IP分配表,但是這張表在哪兒呢?

呵呵,我們知道在追捕的下載包含兩個文件,其一為wry.exe,這是追捕的主程序,其二為wry.dll,注意啦這便是我們辛辛苦苦想找的IP分配表。但是哪種數據文件是以dll結尾呢?dll文件不是動態鏈接庫嗎?

不用急,我們接著分析,在使用追捕的過程中發現,程序生成的數據庫多為DBF數據庫,那麼這個wry.dll是否也是FoxPro的數據庫?

想到做到,馬上將wry.dll改為wry.dbf,然後用Visual FoxPro打開,如圖2,呵呵,果然是DBF數據庫。它主要包含四個字段Startip(啟始IP),Endip(結束IP),Country(IP所在國家或省),Local(用戶上網類型)。
^&^ 知道了這些,程序就不難寫出來了,一句話,查詢數據庫。

慢慢,在網絡上用MDF數據庫,是否有些......

不管三七二十一,將MDF轉換成SQL Server再說。

什麼!?不會將MDF轉換SQL Server?!呵呵,這本雜志是給程序員看的,這些基礎的東東,還是先看看其它的書吧,如果再講這些東東,流浪大哥會罵我騙稿費的:(

實現此功能時,為了程序的可讀性,同樣使用一個函數來完成:

public string GetIPFrom(string sIP)
{
......
}

在前面程序中得到的IP通常為202.101.96.54這種格式,而在IP分配表中的格式是202.101.096.054,所以最先需要完成的就是對IP各段中不足三位的部分補0。

char[] de={'.'};
string[] aIP = sIP.Split(de);

string SingleIP;
StringBuilder nIPx = new StringBuilder();
int SIPLen;
string strResult = "查不出";
for(int i=0;i<4;i++)
{
SingleIP = aIP[i];
SIPLen = SingleIP.Length;
if(SIPLen<3)
{
for(int j=0;j<3-SIPLen;j++) SingleIP ="0"+SingleIP;
}
aIP[i] = SingleIP;
}

//重新組合成為新的IP
for(int i=0;i<aIP.Length;i++)
{
if(i!=aIP.Length-1)
{
nIPx.Append(aIP[i]+".");
}
else
{
nIPx.Append(aIP[i]);
}
}
string nIP = nIPx.ToString();

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved