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