很多朋友用過獨(dú)孤劍客寫的iphunter吧,它是利用在聊天室發(fā)圖片的原理查找對(duì)方IP,其實(shí)不僅僅是聊天室,只要有人對(duì)你的機(jī)器存在訪問,就能夠抓到他的IP,甚至主機(jī)名,在老妖的軟件獵鹿人當(dāng)中也利用了這個(gè)原理,在delphi中是很容易實(shí)現(xiàn)的,現(xiàn)在我們用delphi來做一個(gè)和IPhunter一模一樣的軟件。 有人說現(xiàn)在的程序員成了組裝工人,其實(shí)很有道理,利用控件模塊+少量代碼就可以實(shí)現(xiàn),delphi 5.0提供了豐富的internet控件,利用TCP/IP 客戶端-服務(wù)端就可以解決問題。關(guān)鍵的控件是ServerSocket,我們模仿IPhunter的界面用一個(gè)button1(按鈕),一個(gè)combobox1(用于顯示),這三個(gè)最基本的控件放置到空白窗體上就可以開始寫代碼了 。 首先,這個(gè)combobox1必須能顯示多個(gè)IP,我們定一個(gè)變量y來累加combobox1.items[y], var y:integer; 我們的思路如下,當(dāng)ServerSocket活動(dòng)的port(端口)收到基于TCP/IP協(xié)議的連結(jié)請(qǐng)求時(shí)候,返回對(duì)方的IP值,傳遞給combobox顯示出來。由button1控制ServerSocket的激活,也就是打開關(guān)閉端口。 我們?cè)赟erverSocket的On ClientConnect事件中加入一下代碼 PRocedure TForm1.ServerSocket11ClientConnect(Sender: TObject; Socket: TCustomWinSocket); begin combobox1.Items.Insert(y,');//加入一條空紀(jì)錄 combobox1.Items[y]:=socket.RemoteAddress;//獲取對(duì)方的IP label1.Text:='共捕獲'+inttostr(y+1)+'個(gè)IP';//用一個(gè)標(biāo)簽來顯示一共抓了多少IP y:=y+1;//計(jì)數(shù)變量加1 socket.Close; end; 現(xiàn)在,將button1的caption屬性設(shè)置為 '開始',在它的單擊事件中加入以下代碼 procedure TForm1.SpeedButton7Click(Sender: TObject); begin if speedbutton7.Caption='開始' then begin serversocket11.Port:=80;//這句可以在serversocket屬性中設(shè)定,捕獲瀏覽器的連接 ServerSocket11.Active:=true;//激活端口 speedbutton7.Caption:='停止'; end else begin serversocket11.Active:=false;//關(guān)閉端口 speedbutton7.Caption:='開始'; combobox1.Clear;//結(jié)束捕獲,清空歷史信息 y:=0;//計(jì)數(shù)變量復(fù)位 end; end; 現(xiàn)在一個(gè)IPhunter基本就可以使用了,這只是很簡單原型,加上您自己精心制作的界面,就是一個(gè)網(wǎng)絡(luò)灰客工具了,這個(gè)功能也集成到了獵鹿人里面,這里說到的只是ServerSocket最基本的一點(diǎn)功能而已,加上ClientSocket就可以做一個(gè)聊天工具,只用ClientSocket可以做一個(gè)和代理獵手一樣的掃描軟件,這些在老妖以后的文章中陸續(xù)介紹。 下次預(yù)告 怎樣用delphi制作OICQ工具,匿名信息,查IP,信息炸彈等等....
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注