锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲丰满熟女一区二区哦,国产成人高清亚洲一区91,色噜噜亚洲男人的天堂http://www.tkk7.com/huyi2006/articles/192016.html鑳℃剰鑳℃剰Thu, 10 Apr 2008 15:01:00 GMThttp://www.tkk7.com/huyi2006/articles/192016.htmlhttp://www.tkk7.com/huyi2006/comments/192016.htmlhttp://www.tkk7.com/huyi2006/articles/192016.html#Feedback0http://www.tkk7.com/huyi2006/comments/commentRss/192016.htmlhttp://www.tkk7.com/huyi2006/services/trackbacks/192016.html聽閲嶈TCP鏁版嵁孌碉紝鎴戠湅浜嗐奣CP/IP璇﹁В鍗蜂簩錛氬疄鐜般嬭寰楀畠閲岄潰鐨勫疄鐜拌冭檻鐨勫緢鍏ㄩ潰錛屽綋鐒朵篃灝卞緢澶嶆潅銆傝屾垜緇勮鍙槸涓轟簡鐩戣,鎵浠ヤ笉蹇呴偅涔堝鏉傦紝浜庢槸鑷繁鎯充簡涓涓柟娉曘傜幇鍦ㄦ垜宸茬粡鏍規嵁榪欎釜鏂規硶鎴愬姛緇勮TCP鍒嗘錛屾墍浠ヨ繖涓柟娉曟槸鍙鐨勩傚彟澶栵紝鎴戠殑IP鍒嗙墖鐨勭粍瑁呯敤鐨勬柟娉曡窡榪欎釜鏂規硶涔熷樊涓嶅銆?/p>

聽聽聽 棣栧厛璇翠笅瀛樺偍tcp鍒嗘鐨勬暟鎹粨鏋勶細涓涓簩緇撮摼琛紝鎴戞妸瀹冨彨浣滈噸瑁呰〃銆傚叿鏈夌浉鍚宻ocket瀵癸紙婧恑p鍦板潃銆佺洰鐨刬p鍦板潃銆佹簮绔彛鍙楓佺洰鐨勭鍙e彿錛夌殑tcp鏁版嵁鍖呮斁鍦ㄤ竴涓í鍚戠殑閾捐〃閲岋紝璇ラ摼琛ㄧ殑澶磋妭鐐瑰彧淇濆瓨浜嗘簮ip鍦板潃銆佺洰鐨刬p鍦板潃銆佹簮绔彛鍙楓佺洰鐨勭鍙e彿榪欎簺淇℃伅銆傚涓嬪浘鎵紺猴細

聽聽聽 鐒跺悗浠嬬粛閲嶈TCP鏁版嵁孌電殑鏂規硶錛?/p>

1.姣忓埌鏉ヤ竴涓猼cp鏁版嵁鍖?pkt)錛屾垜鍏堝皢璇ユ暟鎹寘鐨勬簮ip鍦板潃銆佺洰鐨刬p鍦板潃銆佹簮绔彛鍙楓佺洰鐨勭鍙e彿鍙栧嚭鏉ュ湪閲嶈琛紙tpq_tbl錛変腑綰靛悜鐨勯摼琛ㄤ腑鏌ユ壘鏈夋病鏈変笌瀹冪浉鍖歸厤鐨勯摼琛?fp)瀛樺湪錛屽鏋滄湁錛屽氨鎶妏kt鏁版嵁鍖呮斁鍏ヤ笌瀹冩湁鐩稿悓socket瀵圭殑fp閾句腑錛屾斁鍏ラ摼琛ㄧ殑鏃訛紝鎴戝厛鏌ユ壘pkt鐨勯『搴忓彿鍦ㄩ摼琛ㄤ腑鐨勯傚綋浣嶇疆錛岀劧鍚庢墠鏀懼叆錛涘鏋滄病鏈夛紝鍒欏湪tpq_tbl涓柊鍒涘緩涓涓綾誨瀷鐨勯摼琛ㄥご鑺傜偣錛岀劧鍚庡啀灝嗗叾鏀懼叆鏂板垱寤虹殑閾捐〃涓?/p>

2.姣忓綋鍦╢p涓斁鍏ヤ竴涓猼cp鏁版嵁孌靛悗錛屾垜灝辨鏌p閾捐〃涓殑鏁版嵁孌墊槸鍚﹀凡緇忓埌榻愪簡錛堝垽鏂柟娉曚笅闈粙緇嶏級錛岃嫢鍒伴綈錛屽氨灝嗕釜閾捐〃涓墍鏈夋暟鎹鐨勬暟鎹儴鍒嗘嫾鎺ュ埌涓璧鳳紝寰楀埌搴旂敤灞傛姤鏂囷紝鐒跺悗閲婃斁璇ラ摼琛紝鐒跺悗閲嶅1錛?姝ラ錛涜嫢娌″埌榻愶紝鐩存帴閲嶅1錛?姝ラ銆?/p>

聽鍏充簬鍒ゆ柇涓涓摼琛ㄤ腑tcp鏁版嵁孌墊槸鍚﹀埌榻愮殑鏂規硶錛?br />聽聽聽 浣跨敤鐨勫彉閲忚鏄庯細
聽聽聽 count璁℃暟鍣紝琛ㄧず褰撳墠閾捐〃涓殑鎵鏈塼cp鏁版嵁孌墊暟鎹儴鍒嗙殑闀垮害涔嬪拰銆傛瘡褰撳湪璇ラ摼琛ㄤ腑鍔犲叆涓涓柊tcp鏁版嵁孌墊椂錛屾垜閮戒細灝哻ount绱姞涓婅tcp鏁版嵁孌電殑鏁版嵁閮ㄥ垎鐨勯暱搴︺?br />聽聽聽 syn_seq錛岃〃紺烘湰嬈cp榪炴帴鐨勭涓涓暟鎹寘鐨勯『搴忓彿錛屼篃灝辨槸寤虹珛tcp榪炴帴鏃剁殑絎竴嬈℃彙鎵嬬殑SYN鍖呯殑欏哄簭鍙楓?br />聽聽聽 fin_seq錛岃〃紺烘湰嬈cp榪炴帴鐨勬渶鍚庝竴涓暟鎹寘鐨勯『搴忓彿錛屼篃灝辨槸鍏抽棴tcp榪炴帴鏃剁殑絎簩涓狥IN鍖呯殑欏哄簭鍙楓?/p>

聽聽聽 鍒ゆ柇錛氬綋(fin_seq - syn_seq)涓巆ount鐩哥瓑鏃訛紝灝辮鏄巘cp鏁版嵁孌靛凡緇忓埌榻愶紝鍚﹀垯灝辨槸娌℃湁鍒伴綈銆?br />



鑳℃剰 2008-04-10 23:01 鍙戣〃璇勮
]]>
Linux緗戠粶緙栫▼-- 鏈嶅姟鍣ㄦā鍨?/title><link>http://www.tkk7.com/huyi2006/articles/189520.html</link><dc:creator>鑳℃剰</dc:creator><author>鑳℃剰</author><pubDate>Sat, 29 Mar 2008 12:14:00 GMT</pubDate><guid>http://www.tkk7.com/huyi2006/articles/189520.html</guid><wfw:comment>http://www.tkk7.com/huyi2006/comments/189520.html</wfw:comment><comments>http://www.tkk7.com/huyi2006/articles/189520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/huyi2006/comments/commentRss/189520.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/huyi2006/services/trackbacks/189520.html</trackback:ping><description><![CDATA[聽鍦ㄧ綉緇滅▼搴忛噷闈?涓鑸殑鏉ヨ閮芥槸璁稿瀹㈡埛鏈哄搴斾竴涓湇鍔″櫒.涓轟簡澶勭悊瀹㈡埛鏈虹殑璇鋒眰, 瀵規湇鍔$鐨勭▼搴忓氨鎻愬嚭浜嗙壒孌婄殑瑕佹眰.鎴戜滑瀛︿範涓涓嬬洰鍓嶆渶甯哥敤鐨勬湇鍔″櫒妯″瀷.<br /><br />寰幆鏈嶅姟鍣?寰幆鏈嶅姟鍣ㄥ湪鍚屼竴涓椂鍒誨彧鍙互鍝嶅簲涓涓鎴風鐨勮姹?br /><br />騫跺彂鏈嶅姟鍣?騫跺彂鏈嶅姟鍣ㄥ湪鍚屼竴涓椂鍒誨彲浠ュ搷搴斿涓鎴風鐨勮姹?br /><br /><br />9.1 寰幆鏈嶅姟鍣?<br /><br />UDP鏈嶅姟鍣?br />UDP寰幆鏈嶅姟鍣ㄧ殑瀹炵幇闈炲父綆鍗?<br />UDP鏈嶅姟鍣ㄦ瘡嬈′粠濂楁帴瀛椾笂璇誨彇涓涓鎴風鐨勮姹?澶勭悊, 鐒跺悗灝嗙粨鏋滆繑鍥炵粰瀹㈡埛鏈?<br /><br />鍙互鐢ㄤ笅闈㈢殑綆楁硶鏉ュ疄鐜?<br /><br />聽聽 聽socket(...);<br />聽聽 聽bind(...);<br />聽聽 聽while(1)<br />聽聽 聽{<br />聽聽 聽聽聽 聽recvfrom(...);<br />聽聽 聽聽聽 聽process(...);<br />聽聽 聽聽聽 聽sendto(...);<br />聽聽 聽}<br /><br />鍥犱負UDP鏄潪闈㈠悜榪炴帴鐨?娌℃湁涓涓鎴風鍙互鑰佹槸鍗犱綇鏈嶅姟绔? 鍙澶勭悊榪囩▼涓嶆槸姝誨驚鐜? 鏈嶅姟鍣ㄥ浜庢瘡涓涓鎴鋒満鐨勮姹傛繪槸鑳藉婊¤凍.<br /><br />9.2 寰幆鏈嶅姟鍣?<br /><br />TCP鏈嶅姟鍣?br />TCP寰幆鏈嶅姟鍣ㄧ殑瀹炵幇涔熶笉闅?TCP鏈嶅姟鍣ㄦ帴鍙椾竴涓鎴風鐨勮繛鎺?鐒跺悗澶勭悊,瀹屾垚浜嗚繖涓鎴風殑鎵鏈夎姹傚悗,鏂紑榪炴帴.<br /><br />綆楁硶濡備笅:<br /><br />socket(...);<br />bind(...);<br />listen(...);<br /><br />while(1)<br />{<br />聽聽 聽accept(...);<br />聽聽 聽while(1)<br />聽聽 聽{<br />聽聽 聽聽聽 聽read(...);<br />聽聽 聽聽聽 聽process(...);<br />聽聽 聽聽聽 聽write(...);<br />聽聽 聽}<br />聽聽 聽close(...);<br />}<br /><br />TCP寰幆鏈嶅姟鍣ㄤ竴嬈″彧鑳藉鐞嗕竴涓鎴風鐨勮姹?鍙湁鍦ㄨ繖涓鎴風殑鎵鏈夎姹傞兘婊¤凍鍚? 鏈嶅姟鍣ㄦ墠鍙互緇х畫鍚庨潰鐨勮姹?榪欐牱濡傛灉鏈変竴涓鎴風鍗犱綇鏈嶅姟鍣ㄤ笉鏀炬椂,鍏跺畠鐨勫鎴鋒満閮戒笉鑳藉伐浣滀簡.鍥犳,TCP鏈嶅姟鍣ㄤ竴鑸緢灝戠敤寰幆鏈嶅姟鍣ㄦā鍨嬬殑.<br /><br />9.3 騫跺彂鏈嶅姟鍣?聽聽聽聽 TCP鏈嶅姟鍣?br />涓轟簡寮ヨˉ寰幆TCP鏈嶅姟鍣ㄧ殑緙洪櫡,浜轟滑鍙堟兂鍑轟簡騫跺彂鏈嶅姟鍣ㄧ殑妯″瀷. 騫跺彂鏈嶅姟鍣ㄧ殑鎬濇兂鏄瘡涓涓鎴鋒満鐨勮姹傚茍涓嶇敱鏈嶅姟鍣ㄧ洿鎺ュ鐞?鑰屾槸鏈嶅姟鍣ㄥ垱寤轟竴涓?瀛愯繘紼嬫潵澶勭悊.<br /><br />綆楁硶濡備笅:<br /><br />聽聽 聽socket(...);<br />聽聽 聽bind(...);<br />聽聽 聽listen(...);<br />聽聽 聽while(1)<br />聽聽 聽{<br />聽聽 聽聽聽 聽accept(...);<br />聽聽 聽聽聽 聽if(fork(..)==0)<br />聽聽 聽聽聽 聽{<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽while(1)<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽{<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽read(...);<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽process(...);<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽write(...);<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽}<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽close(...);<br />聽聽 聽聽聽 聽聽聽 聽聽聽 聽exit(...);<br />聽聽 聽聽聽 聽}<br />聽聽 聽close(...);<br />聽聽 聽}<br /><br />TCP騫跺彂鏈嶅姟鍣ㄥ彲浠ヨВ鍐砊CP寰幆鏈嶅姟鍣ㄥ鎴鋒満鐙崰鏈嶅姟鍣ㄧ殑鎯呭喌. 涓嶈繃涔熷悓鏃跺甫鏉ヤ簡涓涓笉灝忕殑闂.<br />涓轟簡鍝嶅簲瀹㈡埛鏈虹殑璇鋒眰,鏈嶅姟鍣ㄨ鍒涘緩瀛愯繘紼嬫潵澶勭悊. 鑰屽垱寤哄瓙榪涚▼鏄竴縐嶉潪甯告秷鑰楄祫婧愮殑鎿嶄綔.<br /><br />9.4 騫跺彂鏈嶅姟鍣?<br /><br />澶氳礬澶嶇敤I/O<br />涓轟簡瑙e喅鍒涘緩瀛愯繘紼嬪甫鏉ョ殑緋葷粺璧勬簮娑堣?浜轟滑鍙堟兂鍑轟簡澶氳礬澶嶇敤I/O妯″瀷.<br /><br />棣栧厛浠嬬粛涓涓嚱鏁皊elect<br /><br />int select(int nfds,<br />聽聽 聽聽聽 聽fd_set *readfds,fd_set *writefds,<br />聽聽 聽聽 fd_set *except fds,<br />聽聽 聽聽 struct timeval *timeout<br />聽聽 聽聽 )<br /><br />void FD_SET(int fd,fd_set *fdset)<br /><br />void FD_CLR(int fd,fd_set *fdset)<br /><br />void FD_ZERO(fd_set *fdset)<br /><br />int FD_ISSET(int fd,fd_set *fdset)<br /><br />涓鑸殑鏉ヨ褰撴垜浠湪鍚戞枃浠惰鍐欐椂,榪涚▼鏈夊彲鑳藉湪璇誨啓鍑洪樆濉?鐩村埌涓瀹氱殑鏉′歡婊¤凍.<br /><br />聽姣斿鎴戜滑浠庝竴涓鎺ュ瓧璇繪暟鎹椂,鍙兘緙撳啿鍖洪噷闈㈡病鏈夋暟鎹彲璇?閫氫俊鐨勫鏂硅繕娌℃湁鍙戦佹暟鎹繃鏉?,<br />聽榪欎釜鏃跺欐垜浠殑璇昏皟鐢ㄥ氨浼氱瓑寰?闃誨)鐩村埌鏈夋暟鎹彲璇?濡傛灉鎴戜滑涓?甯屾湜闃誨,<br />聽鎴戜滑鐨勪竴涓夋嫨鏄敤select緋葷粺璋冪敤. <br />聽<br />聽鍙鎴戜滑璁劇疆濂絪elect鐨勫悇涓弬鏁?閭d箞褰撴枃浠跺彲浠ヨ鍐欑殑鏃跺檚elect鍥?閫氱煡"鎴戜滑 璇村彲浠ヨ鍐欎簡. <br />聽readfds鎵鏈夎璇葷殑鏂囦歡聽 鏂囦歡鎻忚堪絎︾殑闆嗗悎<br />writefds鎵鏈夎鍐欑殑鏂囦歡聽聽 鏂囦歡鎻忚堪絎︾殑闆嗗悎<br /><br />exceptfds鍏朵粬鐨勬湇瑕佸悜鎴戜滑閫氱煡鐨勬枃浠舵弿榪扮<br /><br />timeout瓚呮椂璁劇疆.<br /><br />nfds鎵鏈夋垜浠洃鎺х殑鏂囦歡鎻忚堪絎︿腑鏈澶х殑閭d竴涓姞1<br /><br />鍦ㄦ垜浠皟鐢╯elect鏃惰繘紼嬩細涓鐩撮樆濉炵洿鍒頒互涓嬬殑涓縐嶆儏鍐靛彂鐢? <br />1)鏈夋枃浠跺彲浠ヨ.<br />2)鏈夋枃浠跺彲浠ュ啓.<br />3)瓚呮椂鎵璁劇疆鐨勬椂闂村埌.<br /><br />涓轟簡璁劇疆鏂囦歡鎻忚堪絎︽垜浠浣跨敤鍑犱釜瀹? FD_SET灝唂d鍔犲叆鍒癴dset<br /><br />FD_CLR灝唂d浠巉dset閲岄潰娓呴櫎<br /><br />FD_ZERO浠巉dset涓竻闄ゆ墍鏈夌殑鏂囦歡鎻忚堪絎?br /><br />FD_ISSET鍒ゆ柇fd鏄惁鍦╢dset闆嗗悎涓?br /><br />浣跨敤select鐨勪竴涓緥瀛?br /><br />int use_select(int *readfd,int n)<br />{<br />聽聽聽 聽聽聽 fd_set my_readfd;<br />聽聽聽 聽聽聽 int maxfd;<br />聽聽聽 聽聽聽 int i;<br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 maxfd=readfd[0];<br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 for(i=1;i<n;i++)<br />聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 if(readfd[i]>maxfd) maxfd=readfd[i];<br />聽聽聽 聽聽聽 }<br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 while(1)<br />聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 /* 灝嗘墍鏈夌殑鏂囦歡鎻忚堪絎﹀姞鍏?*/<br />聽聽聽 聽聽聽 聽聽聽 FD_ZERO(&my_readfd);<br />聽聽聽 聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 聽聽聽 for(i=0;i<n;i++)<br />聽聽聽 聽聽聽 聽聽聽 FD_SET(readfd[i],*my_readfd);<br />聽聽聽 聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 聽聽聽 /* 榪涚▼闃誨 */<br />聽聽聽 聽聽聽 聽聽聽 select(maxfd+1,& my_readfd,NULL,NULL,NULL);<br />聽聽聽 聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 聽聽聽 /* 鏈変笢瑗垮彲浠ヨ浜?*/<br />聽聽聽 聽聽聽 聽聽聽 for(i=0;i<n;i++)<br />聽聽聽 聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 聽聽聽 if(FD_ISSET(readfd[i],&my_readfd))<br />聽聽聽 聽聽聽 聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 /* 鍘熸潵鏄垜鍙互璇諱簡 */<br />聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 聽聽聽 we_read(readfd[i]);<br />聽聽聽 聽聽聽 聽聽聽 聽聽聽 }<br />聽聽聽 聽聽聽 聽聽聽 }<br />聽聽聽 聽聽聽 }<br />}<br /><br />浣跨敤select鍚庢垜浠殑鏈嶅姟鍣ㄧ▼搴忓氨鍙樻垚浜?<br /><br /><br />鍒濆璇?socket,bind,listen);<br /><br />while(1)<br />{<br />聽聽聽 聽聽聽 璁劇疆鐩戝惉璇誨啓鏂囦歡鎻忚堪絎?FD_*);<br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 璋冪敤select;<br />聽聽聽 聽聽聽 <br />聽聽聽 聽聽聽 濡傛灉鏄懼惉濂楁帴瀛楀氨緇?璇存槑涓涓柊鐨勮繛鎺ヨ姹傚緩绔?br />聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 寤虹珛榪炴帴(accept);<br />聽聽聽 聽聽聽 聽聽聽 鍔犲叆鍒扮洃鍚枃浠舵弿榪扮涓幓;<br />聽聽聽 聽聽聽 }<br />聽聽聽 聽聽聽 鍚﹀垯璇存槑鏄竴涓凡緇忚繛鎺ヨ繃鐨勬弿榪扮<br />聽聽聽 聽聽聽 {<br />聽聽聽 聽聽聽 聽聽聽 榪涜鎿嶄綔(read鎴栬厀rite);<br />聽聽聽 聽聽聽 }<br /><br />}<br /><br />澶氳礬澶嶇敤I/O鍙互瑙e喅璧勬簮闄愬埗鐨勯棶棰?鐫妯″瀷瀹為檯涓婃槸灝哢DP寰幆妯″瀷鐢ㄥ湪浜員CP涓婇潰. 榪欎篃灝卞甫鏉ヤ簡涓浜涢棶棰?濡傜敱浜庢湇鍔″櫒渚濇澶勭悊瀹㈡埛鐨勮姹?鎵浠ュ彲鑳戒細瀵艱嚧鏈夌殑瀹㈡埛 浼氱瓑寰呭緢涔?<br /><br />聽騫跺彂鏈嶅姟鍣?聽聽聽聽聽聽聽 UDP鏈嶅姟鍣?br />浜轟滑鎶婂茍鍙戠殑姒傚康鐢ㄤ簬UDP灝卞緱鍒頒簡騫跺彂UDP鏈嶅姟鍣ㄦā鍨? <br />聽騫跺彂UDP鏈嶅姟鍣ㄦā鍨嬪叾瀹炴槸綆鍗曠殑.鍜屽茍鍙戠殑TCP鏈嶅姟鍣ㄦā鍨嬩竴鏍鋒槸<br />聽鍒涘緩涓涓瓙榪涚▼鏉ュ鐞嗙殑 綆楁硶鍜屽茍鍙戠殑TCP妯″瀷涓鏍?<br /><br />闄ら潪鏈嶅姟鍣ㄥ湪澶勭悊瀹㈡埛绔殑璇鋒眰鎵鐢ㄧ殑鏃墮棿姣旇緝闀夸互澶?浜轟滑瀹為檯涓婂緢灝戠敤榪欑妯″瀷. <br /><img src ="http://www.tkk7.com/huyi2006/aggbug/189520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/huyi2006/" target="_blank">鑳℃剰</a> 2008-03-29 20:14 <a href="http://www.tkk7.com/huyi2006/articles/189520.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>(C)libpcap鍑芥暟搴撹鏄?/title><link>http://www.tkk7.com/huyi2006/articles/139179.html</link><dc:creator>鑳℃剰</dc:creator><author>鑳℃剰</author><pubDate>Fri, 24 Aug 2007 13:07:00 GMT</pubDate><guid>http://www.tkk7.com/huyi2006/articles/139179.html</guid><wfw:comment>http://www.tkk7.com/huyi2006/comments/139179.html</wfw:comment><comments>http://www.tkk7.com/huyi2006/articles/139179.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/huyi2006/comments/commentRss/139179.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/huyi2006/services/trackbacks/139179.html</trackback:ping><description><![CDATA[ <p>(C)libpcap鍑芥暟搴撹鏄?/p> <p>libpcap鑾峰彇鏁版嵁鍖呭嚱鏁板簱璇存槑</p> <p>libpcap鐨勮嫳鏂囨剰鎬濇槸 Packet Capture library錛屽嵆鏁版嵁鍖呮崟鑾峰嚱鏁板簱銆傝搴撴彁渚涚殑C鍑芥暟鎺ュ彛鍙敤浜?/p> <p>闇瑕佹崟鑾風粡榪囩綉緇滄帴鍙o紙鍙緇忚繃璇ユ帴鍙o紝鐩爣鍦板潃涓嶄竴瀹氫負鏈満錛夋暟鎹寘鐨勭郴緇熷紑鍙戜笂銆傜敱 </p> <p>Berkeley澶уLawrence Berkeley National聽 Laboratory鐮旂┒闄㈢殑Van Jacobson銆丆raig Leres鍜?/p> <p>Steven McCanne緙栧啓錛岀洰鍓嶇殑鏈鏂扮増鏈負0.4銆傝鍑芥暟搴撴敮鎸丩inux銆丼olaris鍜?BSD緋葷粺騫沖彴銆?</p> <p>涓昏鎺ュ彛鍑芥暟璇存槑濡備笅錛?br />聽<br />pcap_t *pcap_open_live(char *device, int snaplen, int promisc, int to_ms, char *ebuf) <br />鑾峰緱鐢ㄤ簬鎹曡幏緗戠粶鏁版嵁鍖呯殑鏁版嵁鍖呮崟鑾鋒弿榪板瓧銆俤evice鍙傛暟涓烘寚瀹氭墦寮鐨勭綉緇滆澶囧悕銆俿naplen鍙傛暟瀹?/p> <p>涔夋崟鑾鋒暟鎹殑鏈澶у瓧鑺傛暟銆俻romisc鎸囧畾鏄惁灝嗙綉緇滄帴鍙g疆浜庢販鏉傛ā寮忋倀o_ms鍙傛暟鎸囧畾瓚呮椂鏃墮棿錛堟</p> <p>縐掞級銆俥buf鍙傛暟鍒欎粎鍦╬cap_open_live()鍑芥暟鍑洪敊榪斿洖NULL鏃剁敤浜庝紶閫掗敊璇秷鎭?</p> <p>pcap_t *pcap_open_offline(char *fname, char *ebuf) <br />鎵撳紑浠ュ墠淇濆瓨鎹曡幏鏁版嵁鍖呯殑鏂囦歡錛岀敤浜庤鍙栥俧name鍙傛暟鎸囧畾鎵撳紑鐨勬枃浠跺悕銆傝鏂囦歡涓殑鏁版嵁鏍煎紡涓?/p> <p>tcpdump鍜宼cpslice鍏煎銆?-"涓烘爣鍑嗚緭鍏ャ俥buf鍙傛暟鍒欎粎鍦╬cap_open_offline()鍑芥暟鍑洪敊榪斿洖NULL鏃?/p> <p>鐢ㄤ簬浼犻掗敊璇秷鎭?</p> <p>pcap_dumper_t *pcap_dump_open(pcap_t *p, char *fname)<br />鎵撳紑鐢ㄤ簬淇濆瓨鎹曡幏鏁版嵁鍖呯殑鏂囦歡錛岀敤浜庡啓鍏ャ俧name鍙傛暟涓?-"鏃惰〃紺烘爣鍑嗚緭鍑恒傚嚭閿欐椂榪斿洖NULL銆俻鍙?/p> <p>鏁頒負璋冪敤pcap_open_offline()鎴杙cap_open_live()鍑芥暟鍚庤繑鍥炵殑pcap緇撴瀯鎸囬拡銆俧name鍙傛暟鎸囧畾鎵撳紑</p> <p>鐨勬枃浠跺悕銆傚鏋滆繑鍥濶ULL錛屽垯鍙皟鐢╬cap_geterr()鍑芥暟鑾峰彇閿欒娑堟伅銆?</p> <p>char *pcap_lookupdev(char *errbuf) <br />鐢ㄤ簬榪斿洖鍙pcap_open_live()鎴杙cap_lookupnet()鍑芥暟璋冪敤鐨勭綉緇滆澶囧悕鎸囬拡銆傚鏋滃嚱鏁板嚭閿欙紝鍒?/p> <p>榪斿洖NULL錛屽悓鏃秂rrbuf涓瓨鏀劇浉鍏崇殑閿欒娑堟伅銆?</p> <p>int pcap_lookupnet(char *device, bpf_u_int32 *netp, bpf_u_int32 *maskp, char *errbuf) <br />鑾峰緱鎸囧畾緗戠粶璁懼鐨勭綉緇滃彿鍜屾帺鐮併俷etp鍙傛暟鍜宮askp鍙傛暟閮芥槸bpf_u_int32鎸囬拡銆傚鏋滃嚱鏁板嚭閿欙紝鍒?/p> <p>榪斿洖-1錛屽悓鏃秂rrbuf涓瓨鏀劇浉鍏崇殑閿欒娑堟伅銆?</p> <p>int pcap_dispatch(pcap_t *p, int cnt,pcap_handler callback, u_char *user) <br />聽鎹曡幏騫跺鐞嗘暟鎹寘銆俢nt鍙傛暟鎸囧畾鍑芥暟榪斿洖鍓嶆墍澶勭悊鏁版嵁鍖呯殑鏈澶у箋俢nt=-1琛ㄧず鍦ㄤ竴涓紦鍐插尯涓</p> <p>鐞嗘墍鏈夌殑鏁版嵁鍖呫俢nt=0琛ㄧず澶勭悊鎵鏈夋暟鎹寘錛岀洿鍒頒駭鐢熶互涓嬮敊璇箣涓錛氳鍙栧埌EOF錛涜秴鏃惰鍙栥?/p> <p>callback 鍙傛暟鎸囧畾涓涓甫鏈変笁涓弬鏁扮殑鍥炶皟鍑芥暟錛岃繖涓変釜鍙傛暟涓猴細涓涓粠pcap_dispatch()鍑芥暟浼犻?/p> <p>榪囨潵鐨剈_char鎸囬拡錛屼竴涓猵cap_pkthdr緇撴瀯libpcap鍑芥暟搴撹鏄庛俠sp;聽 鐨勬寚閽堬紝鍜屼竴涓暟鎹寘澶у皬鐨?/p> <p>u_char鎸囬拡銆傚鏋滄垚鍔熷垯榪斿洖璇誨彇鍒扮殑瀛楄妭鏁般傝鍙栧埌EOF鏃跺垯榪斿洖闆跺箋傚嚭閿欐椂鍒欒繑鍥?1錛屾鏃跺彲璋?/p> <p>鐢╬cap_perror()鎴杙cap_geterr()鍑芥暟鑾峰彇閿欒娑堟伅銆?</p> <p>int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user) <br />鍔熻兘鍩烘湰涓巔cap_dispatch()鍑芥暟鐩稿悓錛屽彧涓嶈繃姝ゅ嚱鏁板湪cnt涓暟鎹寘琚鐞嗘垨鍑虹幇閿欒鏃舵墠榪斿洖錛屼絾</p> <p>璇誨彇瓚呮椂涓嶄細榪斿洖銆傝屽鏋滀負pcap_open_live()鍑芥暟鎸囧畾浜嗕竴涓潪闆跺肩殑瓚呮椂璁劇疆錛岀劧鍚庤皟鐢?/p> <p>pcap_dispatch()鍑芥暟錛屽垯褰撹秴鏃跺彂鐢熸椂pcap_dispatch()鍑芥暟浼氳繑鍥炪俢nt鍙傛暟涓鴻礋鍊兼椂pcap_loop()</p> <p>鍑芥暟灝嗗緇堝驚鐜繍琛岋紝闄ら潪鍑虹幇閿欒銆?</p> <p>void pcap_dump(u_char *user, struct pcap_pkthdr *h, u_char *sp) <br />鍚戣皟鐢╬cap_dump_open()鍑芥暟鎵撳紑鐨勬枃浠惰緭鍑轟竴涓暟鎹寘銆傝鍑芥暟鍙綔涓簆cap_dispatch()鍑芥暟鐨勫洖璋?/p> <p>鍑芥暟銆?</p> <p>int pcap_compile(pcap_t *p, struct bpf_program *fp, char *str, int optimize, bpf_u_int32 </p> <p>netmask) <br />灝唖tr鍙傛暟鎸囧畾鐨勫瓧絎︿覆緙栬瘧鍒拌繃婊ょ▼搴忎腑銆俧p鏄竴涓猙pf_program緇撴瀯鐨勬寚閽堬紝鍦╬cap_compile()鍑?/p> <p>鏁頒腑琚祴鍊箋俹ptimize鍙傛暟鎺у埗緇撴灉浠g爜鐨勪紭鍖栥俷etmask鍙傛暟鎸囧畾鏈湴緗戠粶鐨勭綉緇滄帺鐮併?<br />聽聽聽聽聽聽聽聽 <br />int pcap_setfilter(pcap_t *p, struct bpf_program *fp) <br />鎸囧畾涓涓繃婊ょ▼搴忋俧p鍙傛暟鏄痓pf_program緇撴瀯鎸囬拡錛岄氬父鍙栬嚜pcap_compile()鍑芥暟璋冪敤銆傚嚭閿欐椂榪斿洖</p> <p>-1錛涙垚鍔熸椂榪斿洖0銆?</p> <p>u_char *pcap_next(pcap_t *p, struct pcap_pkthdr *h) <br />榪斿洖鎸囧悜涓嬩竴涓暟鎹寘鐨剈_char鎸囬拡銆?</p> <p>int pcap_datalink(pcap_t *p) <br />榪斿洖鏁版嵁閾捐礬灞傜被鍨嬶紝渚嬪DLT_EN10MB銆?</p> <p>int pcap_snapshot(pcap_t *p) <br />榪斿洖pcap_open_live琚皟鐢ㄥ悗鐨剆napshot鍙傛暟鍊箋?</p> <p>int pcap_is_swapped(pcap_t *p) <br />榪斿洖褰撳墠緋葷粺涓繪満瀛楄妭涓庤鎵撳紑鏂囦歡鐨勫瓧鑺傞『搴忔槸鍚︿笉鍚屻?</p> <p>int pcap_major_version(pcap_t *p) <br />榪斿洖鍐欏叆琚墦寮鏂囦歡鎵浣跨敤鐨刾cap鍑芥暟鐨勪富鐗堟湰鍙楓?</p> <p>int pcap_minor_version(pcap_t *p) <br />榪斿洖鍐欏叆琚墦寮鏂囦歡鎵浣跨敤鐨刾cap鍑芥暟鐨勮緟鐗堟湰鍙楓?</p> <p>int pcap_stats(pcap_t *p, struct pcap_stat *ps) <br />鍚憄cap_stat緇撴瀯璧嬪箋傛垚鍔熸椂榪斿洖0銆傝繖浜涙暟鍊煎寘鎷簡浠庡紑濮嬫崟鑾鋒暟鎹互鏉ヨ嚦浠婂叡鎹曡幏鍒扮殑鏁版嵁鍖呯粺</p> <p>璁°傚鏋滃嚭閿欐垨涓嶆敮鎸佹暟鎹寘緇熻錛屽垯榪斿洖-1錛屼笖鍙皟鐢╬cap_perror()鎴柭?pcap_geterr()鍑芥暟鏉ヨ幏</p> <p>鍙栭敊璇秷鎭?</p> <p>FILE *pcap_file(pcap_t *p) <br />榪斿洖琚墦寮鏂囦歡鐨勬枃浠跺悕銆?</p> <p>int pcap_fileno(pcap_t *p) <br />榪斿洖琚墦寮鏂囦歡鐨勬枃浠舵弿榪板瓧鍙風爜銆?</p> <p>void pcap_perror(pcap_t *p, char *prefix) <br />鍦ㄦ爣鍑嗚緭鍑鴻澶囦笂鏄劇ず鏈鍚庝竴涓猵cap搴撻敊璇秷鎭備互prefix鍙傛暟鎸囧畾鐨勫瓧絎︿覆涓烘秷鎭ご銆?</p> <p>char *pcap_geterr(pcap_t *p) <br />榪斿洖鏈鍚庝竴涓猵cap搴撻敊璇秷鎭?</p> <p>char *pcap_strerror(int error) <br />濡傛灉strerror()鍑芥暟涓嶅彲鐢紝鍒欏彲璋冪敤pcap_strerror鍑芥暟鏇夸唬銆?</p> <p>void pcap_close(pcap_t *p) <br />鍏抽棴p鍙傛暟鐩稿簲鐨勬枃浠訛紝騫墮噴鏀捐祫婧愩?</p> <p>void pcap_dump_close(pcap_dumper_t *p) </p> <p>5銆丩ibpcap鐨勪富瑕佹暟鎹粨鏋勶細<br />聽<br />Libpcap搴撳嚱鏁版墍蹇呴』鐨勬暟鎹粨鏋勫畾涔変富瑕佸寘鍚湪pcap.h鍜宲cap-int.h涓や釜澶存枃浠朵腑銆傚叾涓昏鏁版嵁緇撴瀯</p> <p>濡備笅錛?br />聽<br />(1)pcap緇撴瀯<br />聽<br />pcap緇撴瀯鍦╬cap-int.h澶存枃浠朵腑琚畾涔夛細<br />聽<br />struct pcap<br />{<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 fd;<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 snapshot;<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 linktype;<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 tzoff;聽聽聽 /* timezone offset聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 offset;聽聽 /* offset for proper alignment聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 struct pcap_sf聽聽聽聽 sf;<br />聽聽聽 struct pcap_md聽聽聽聽 md;<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 bufsize;聽 /* Read buffer聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 u_char *聽聽聽聽聽聽聽聽聽聽 buffer;<br />聽聽聽 u_char *聽聽聽聽聽聽聽聽聽聽 bp;<br />聽聽聽 int聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 cc;<br />聽聽聽 u_char *聽聽聽聽聽聽聽聽聽聽 pkt;聽聽聽聽聽 /* Place holder for pcap_next()聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 struct bpf_program fcode;聽聽聽 /* Placeholder for filter code if bpf not in kernel. */<br />聽聽聽 char聽聽聽聽聽聽聽聽聽聽聽聽聽聽 errbuf[PCAP_ERRBUF_SIZE];<br />};<br />聽<br />(2)bpf_program緇撴瀯<br />聽<br />璇ョ粨鏋勫湪pcap_compile()鍑芥暟涓浣跨敤錛屽湪bpf.h澶存枃浠朵腑瀹氫箟銆?br />聽<br />/usr/include/net/bpf.h</p> <p>/* Structure for BIOCSETF. */<br />struct bpf_program<br />{<br />聽聽聽 u_int聽聽聽聽聽聽聽聽聽聽聽聽 bf_len;<br />聽聽聽 struct bpf_insn * bf_insns;<br />};</p> <p>/*<br />* The instruction data structure.<br />*/<br />struct bpf_insn<br />{<br />聽聽聽 u_short聽聽 code;<br />聽聽聽 u_char聽聽聽 jt;<br />聽聽聽 u_char聽聽聽 jf;<br />聽聽聽 bpf_int32 k;<br />};<br />聽<br />(3)pcap_pkthdr緇撴瀯<br />聽<br />/usr/include/pcap.h</p> <p>/*<br />* Each packet in the dump file is prepended with this generic header.<br />* This gets around the problem of different headers for different<br />* packet interfaces.<br />*/<br />struct pcap_pkthdr<br />{<br />聽聽聽 struct timeval ts;聽聽聽聽聽 /* time stamp聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 bpf_u_int32聽聽聽 caplen;聽 /* length of portion present聽聽聽聽 */<br />聽聽聽 bpf_u_int32聽聽聽 len;聽聽聽聽 /* length this packet (off wire) */<br />};</p> <p>/usr/include/net/bpf.h</p> <p>/*<br />* Structure prepended to each packet.<br />*/<br />struct bpf_hdr<br />{<br />聽聽聽 struct timeval bh_tstamp;聽聽 /* time stamp聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 */<br />聽聽聽 bpf_u_int32聽聽聽 bh_caplen;聽聽 /* length of captured portion */<br />聽聽聽 bpf_u_int32聽聽聽 bh_datalen;聽 /* original length of packet聽 */<br />聽聽聽 u_short聽聽聽聽聽聽聽 bh_hdrlen;聽聽 /* length of bpf header (this struct<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 plus alignment padding)聽聽聽 */<br />};<br />聽<br />(4)pcap_stat緇撴瀯<br />聽<br />struct pcap_stat {<br />聽聽聽聽聽聽聽 u_int ps_recv; /* number of packets received */<br />聽聽聽聽聽聽聽 u_int ps_drop; /* number of packets dropped */<br />聽聽聽聽聽聽聽 u_int ps_ifdrop; /* drops by interface XXX not yet supported */<br />};<br /><br />int main()<br />{<br />聽聽聽聽聽聽聽 bpf_u_int32 localnet,netmask;<br />聽聽聽聽聽聽聽 struct bpf_program fcode;<br />聽聽聽聽聽聽聽 pcap_handler printer;</p> <p>聽聽聽聽聽聽聽 pcap_dumper_t*p;<br />聽聽聽聽聽聽聽 char ebuf[PCAP_ERRBUF_SIZE];<br />聽聽聽聽聽聽聽 char * device;<br />聽聽聽聽聽聽聽 u_char * pcap_userdata;<br />聽聽聽聽聽聽聽 pcap_t * pd;<br />聽聽聽聽聽聽聽 int dev_flag=1;<br />聽聽聽聽聽聽聽 int cap_len=CAP_LEN;<br />聽聽聽聽聽聽聽 int i;</p> <p>聽聽聽聽聽聽聽 device=pcap_lookupdev(ebuf);<br />聽聽聽聽聽聽聽 if (device == NULL)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("%s n", ebuf));<br />聽聽聽聽聽聽聽 #ifdef _DEBUG_<br />聽聽聽聽聽聽聽 printf("device is %s \n",device);<br />聽聽聽聽聽聽聽 #endif<br />聽聽聽聽聽聽聽 pd=pcap_open_live(device,cap_len,dev_flag,1000,ebuf);<br />聽聽聽聽聽聽聽 if(pd == NULL)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("%s\n",ebuf));</p> <p>聽聽聽聽聽聽聽 i=pcap_snapshot(pd);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if(cap_len < i) {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 printf("snaplen raised from %d to %d \n", cap_len, i);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 cap_len=i;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽 if(pcap_lookupnet(device, &localnet, &netmask, ebuf) < 0) {<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 localnet=0;</p> <p>聽聽聽 netmask=0;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 printf("%s\n", ebuf);<br />聽聽聽聽聽聽聽 }<br />聽聽聽聽聽聽聽 if (pcap_compile(pd, &fcode, "", 1, netmask) < 0)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("Error %s\n","pcap_compile"));<br />聽聽聽聽聽聽聽 if (pcap_setfilter(pd,&fcode) < 0)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("Error %s\n","pcap_setfilter"));</p> <p>聽聽聽聽聽聽聽 p=pcap_dump_open(pd,FILENAME);<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 if(p == NULL)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("Error:%s\n","pcap_dump_open"));<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 printer=pcap_dump;<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 pcap_userdata=(u_char *)p;</p> <p>聽聽聽聽聽聽聽 if(pcap_loop(pd, -1, printer, pcap_userdata) < 0)<br />聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽 exit(printf("Error, %s\n","pcap_loop"));</p> <p>聽聽聽聽聽聽聽 pcap_close(pd);<br />聽聽聽聽聽聽聽 exit(0);<br />}</p> <p>聽</p> <img src ="http://www.tkk7.com/huyi2006/aggbug/139179.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/huyi2006/" target="_blank">鑳℃剰</a> 2007-08-24 21:07 <a href="http://www.tkk7.com/huyi2006/articles/139179.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>socket緙栫▼涓渶瑕佺敤鍒扮殑澶存枃浠?/title><link>http://www.tkk7.com/huyi2006/articles/139176.html</link><dc:creator>鑳℃剰</dc:creator><author>鑳℃剰</author><pubDate>Fri, 24 Aug 2007 12:54:00 GMT</pubDate><guid>http://www.tkk7.com/huyi2006/articles/139176.html</guid><wfw:comment>http://www.tkk7.com/huyi2006/comments/139176.html</wfw:comment><comments>http://www.tkk7.com/huyi2006/articles/139176.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/huyi2006/comments/commentRss/139176.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/huyi2006/services/trackbacks/139176.html</trackback:ping><description><![CDATA[ <font face="瀹嬩綋">聽</font> <h2 align="left"> <font size="6">socket緙栫▼涓渶瑕佺敤鍒扮殑澶存枃浠?/font> </h2> <font size="+2"> <p>sys/types.h錛氭暟鎹被鍨嬪畾涔?/p> <p>sys/socket.h錛氭彁渚泂ocket鍑芥暟鍙婃暟鎹粨鏋?/p> <p>netinet/in.h錛氬畾涔夋暟鎹粨鏋剆ockaddr_in</p> <p>arpa/inet.h錛氭彁渚汭P鍦板潃杞崲鍑芥暟</p> <p>netdb.h錛氭彁渚涜緗強鑾峰彇鍩熷悕鐨勫嚱鏁?/p> <p>sys/ioctl.h錛氭彁渚涘I/O鎺у埗鐨勫嚱鏁?/p> <p>sys/poll.h錛氭彁渚泂ocket絳夊緟嫻嬭瘯鏈哄埗鐨勫嚱鏁?/p> <h2>聽</h2> <h2> </h2> </font> <font size="6">鍏朵粬鍦ㄧ綉緇滅▼搴忎腑甯歌鐨勫ご鏂囦歡</font> <font size="+2"> <p>unistd.h錛氭彁渚涢氱敤鐨勬枃浠躲佺洰褰曘佺▼搴忓強榪涚▼鎿嶄綔鐨勫嚱鏁?/p> <p>errno.h錛氭彁渚涢敊璇彿errno鐨勫畾涔夛紝鐢ㄤ簬閿欒澶勭悊</p> <p>fcntl.h錛氭彁渚涘鏂囦歡鎺у埗鐨勫嚱鏁?/p> <p>time.h錛氭彁渚涙湁鍏蟲椂闂寸殑鍑芥暟</p> <p>crypt.h錛氭彁渚涗嬌鐢―ES鍔犲瘑綆楁硶鐨勫姞瀵嗗嚱鏁?/p> <p>pwd.h錛氭彁渚涘/etc/passwd鏂囦歡璁塊棶鐨勫嚱鏁?/p> <p>shadow.h錛氭彁渚涘/etc/shadow鏂囦歡璁塊棶鐨勫嚱鏁?/p> <p>pthread.h錛氭彁渚涘綰跨▼鎿嶄綔鐨勫嚱鏁?/p> <p>signal.h錛氭彁渚涘淇″彿鎿嶄綔鐨勫嚱鏁?/p> <p>sys/wait.h銆乻ys/ipc.h銆乻ys/shm.h錛氭彁渚涜繘紼嬬瓑寰呫佽繘紼嬮棿閫氳錛圛PC錛夊強鍏變韓鍐呭瓨鐨勫嚱鏁?/p> <p>聽</p> </font> <p> <font size="6">寤鴻錛?/font> <font size="5">鍦ㄧ紪鍐欑綉緇滅▼搴忔椂錛屽彲浠ョ洿鎺ヤ嬌鐢ㄤ笅闈㈣繖孌靛ご鏂囦歡浠g爜</font> </p> <font size="+2"> <p> <font face="Times New Roman">#include <unistd.h><br />#include <sys/types.h><br />#include <sys/socket.h><br />#include <netdb.h><br />#include <stdio.h><br />#include <stdlib.h><br />#include <string.h><br />#include <ctype.h><br />#include <errno.h><br />#include <malloc.h><br />#include <netinet/in.h><br />#include <arpa/inet.h><br />#include <sys/ioctl.h><br />#include <stdarg.h><br />#include <fcntl.h><br />#include <fcntl.h><br />聽 </font> </p> <p> </p> <p> <b>娑夊強鍒扮敤鎴鋒潈闄愬強瀵嗙爜楠岃瘉闂鏃跺姞鍏ュ涓嬭鍙ワ細<br /></b> <font face="Times New Roman">#include <shadow.h><br />#include <crypt.h><br />#include <pwd.h></font> <br /> <font color="#ff0000">闇瑕佹敞鎰忕殑鏄紝搴旇鍦ㄧ紪璇戞椂閾炬帴鍔犲瘑綆楁硶搴擄紝鍗沖鍔犵紪璇戦夐」錛?br />-lcrypt</font> </p> <p>銆聽 </p> <p> </p> <p> <b>娑夊強鍒版枃浠跺強鏃墮棿鎿嶄綔鍔犲叆濡備笅璇彞錛?/b> <br /> <font face="Times New Roman">#include <sys/time.h><br />#include <utime.h><br />#include <time.h><br />#include <sys/stat.h><br />#include <sys/file.h><br />聽 </font> </p> <p> </p> <p> <b>娑夊強鍒板榪涚▼鎿嶄綔鏃跺姞鍏ュ涓嬭鍙ワ細</b> <br /> <font face="Times New Roman">#include <sys/wait.h><br />#include <sys/ipc.h><br />#include <sys/shm.h><br />#include <signal.h></font> <br />聽 </p> <p> </p> <p> <b>娑夊強鍒板綰跨▼鎿嶄綔鏃跺姞鍏ュ涓嬭鍙ワ細</b> <br /> <font face="Times New Roman">#include <pthread.h><br />#include <sys/poll.h><br /></font> <font color="#ff0000">闇瑕佹敞鎰忕殑鏄紝搴旇鍦ㄧ紪璇戞椂閾炬帴綰跨▼搴擄紝鍗沖鍔犵紪璇戦夐」錛?br />-lthread</font> </p> </font> <img src ="http://www.tkk7.com/huyi2006/aggbug/139176.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/huyi2006/" target="_blank">鑳℃剰</a> 2007-08-24 20:54 <a href="http://www.tkk7.com/huyi2006/articles/139176.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>linux 涓嬪畨瑁卨ibpcap (搴?鎵嬭 http://www.tkk7.com/huyi2006/articles/127361.html鑳℃剰鑳℃剰Sun, 01 Jul 2007 07:47:00 GMThttp://www.tkk7.com/huyi2006/articles/127361.htmlhttp://www.tkk7.com/huyi2006/comments/127361.htmlhttp://www.tkk7.com/huyi2006/articles/127361.html#Feedback4http://www.tkk7.com/huyi2006/comments/commentRss/127361.htmlhttp://www.tkk7.com/huyi2006/services/trackbacks/127361.html
鎴戞渶榪戝紑鍙戜釜欏圭洰錛岃鐢ㄥ埌 libpcap 鍑芥暟搴擄紝鐜板皢瀹夎鏂規硶鏀懼湪涓婚〉涓婁緵澶у鍙傝冿紝
涓 涓嬭澆libpcap 搴?鏂囦歡鐨勬牸寮忎負x.tar.gz
聽聽聽聽聽 http://www.tcpdump.org/release/
浜?瀹夎
聽聽聽聽 1銆佺敤
聽聽聽聽聽聽聽聽 聽#tar zxvf x.tat.gz
聽聽聽聽聽聽聽聽聽 鍛戒護瑙e帇鏂囦歡鍒頒綘鐨勫綋鍓嶇洰褰?/div>
聽聽聽聽 2銆佽繘鍏ュ垰鎵嶈В寮鐨刲ibpcap鐩綍錛屾墽琛?/div>
聽聽聽聽聽聽聽聽聽 #./configure
聽聽聽聽聽聽聽聽聽 鍛戒護錛岀敓鎴怣akefile鏂囦歡
聽聽聽聽3銆佽緭鍏?
聽聽聽聽聽聽聽聽聽 #make install
聽聽聽聽聽聽聽聽聽 灝嗙敓鎴愮殑搴撳畨瑁呭埌緋葷粺榛樿鐩綍涓傛鐩綍涓?/usr/lib 錛屽鏋滈渶瑕佷慨鏀癸紝鍙互淇敼鏂囦歡Makefile 鐨?prefix銆?/div>
聽聽聽聽4銆佽緭鍏?
聽聽聽聽聽聽聽聽 #make install-incl
聽聽聽聽聽聽聽聽 灝嗗ご鏂囦歡瀹夎鑷崇郴緇熼粯璁ょ洰褰曪紝/usr/include錛屼慨鏀瑰悓涓?/div>
涓?浣跨敤
聽聽聽聽聽聽聽聽 聽濡傛灉瑕佷嬌鐢╨ibpcap,涓鑸姞鍏?
聽聽聽聽聽聽聽聽聽聽#include <pcap.h>
聽聽聽聽聽聽聽聽聽 緙栬瘧閫夐」錛?cc .. -lpcap 鈥搇socket ..
good luck


鑳℃剰 2007-07-01 15:47 鍙戣〃璇勮
]]>IP棣栭儴媯鏌ュ拰鐨勭悊瑙?/title><link>http://www.tkk7.com/huyi2006/articles/118178.html</link><dc:creator>鑳℃剰</dc:creator><author>鑳℃剰</author><pubDate>Thu, 17 May 2007 13:43:00 GMT</pubDate><guid>http://www.tkk7.com/huyi2006/articles/118178.html</guid><wfw:comment>http://www.tkk7.com/huyi2006/comments/118178.html</wfw:comment><comments>http://www.tkk7.com/huyi2006/articles/118178.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/huyi2006/comments/commentRss/118178.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/huyi2006/services/trackbacks/118178.html</trackback:ping><description><![CDATA[寰堝鏂囩珷瀵筰p棣栭儴媯楠屽拰鐨勮綆椾粙緇嶅緱寰堢畝鐣ワ紝鍦ㄧ悊瑙d笂甯稿父浼氭瘮杈冨洶闅俱傝繖綃囨枃绔犳槸鎴戣嚜宸辯殑涓浜涚悊瑙c傛垨璁鎬篃鏈変笉姝g‘鐨勫湴鏂癸紝甯屾湜澶у鎸囨銆?br /><pre>榪欎釜闂涓鐩村洶緇曚簡鎴戝緢闀挎椂闂達紝浠婂ぉ緇堜簬鐞嗚В浜嗐?<br /><br /><br />鎴戜滑鍙互閫氳繃spynet sniffer鎶撳寘杞歡錛屾姄鍙栦竴涓猧p鏁版嵁鍖呰繘琛屽垎鏋愮爺絀躲?<br />涓嬮潰鎴戜互鏈満鎶撳埌鐨勪竴涓畬鏁寸殑ip棣栭儴涓轟緥錛堢孩鑹插瓧浣撹〃紺猴級錛?<br /><br />0000: 00 e0 0f 7d 1e ba 00 13 8f 54 3b 70 08 00 45 00 <br />0010: 00 2e be 55 00 00 7a 11 51 ac de b7 7e e3 c0 a8 <br />0020: 12 7a <br /><br />45 00 00 2e----4琛ㄧずip鐗堟湰鍙蜂負ip絎?鐗堬紱5琛ㄧず棣栭儴闀垮害涓?涓?2 bit瀛楅暱錛屽嵆涓?0瀛楄妭錛?0 2e琛ㄧずip鎬婚暱搴︿負46瀛楄妭錛屽叾涓璱p鏁版嵁閮ㄥ垎涓?<br />26瀛楄妭銆?<br />be 55 00 00----be 55琛ㄧず鏍囪瘑絎︼紱00 00琛ㄧず3 bit鏍囧織鍙?3 bit鐗囧亸縐婚噺錛?<br />7a 11 51 ac----7a琛ㄧずttl鍊間負122錛?1琛ㄧず鍗忚鍙蜂負17鐨剈dp鍗忚錛?1 ac琛ㄧず16 bit棣栭儴媯楠屽拰鍊鹼紱 <br />de b7 7e e3----琛ㄧず32 bit 婧恑p鍦板潃涓?22.183.126.227 <br />c0 a8 12 7a----琛ㄧず32 bit 鐩殑ip鍦板潃涓?92.168.18.122 </pre><pre><br /><br /><br />媯楠屽拰璁$畻錛?<br />棣栧厛,鎶婃楠屽拰瀛楁緗負0銆?<br />45 00 00 2e <br />be 55 00 00 <br />7a 11 00 00<----媯楠屽拰緗負0 <br />de b7 7e e3 <br />c0 a8 12 7a <br />鍏舵錛屽鏁翠釜棣栭儴涓殑姣忎釜16 bit榪涜浜岃繘鍒跺弽鐮佹眰鍜岋紝姹傚拰鍊間負3ae50錛岀劧鍚?+ae50=ae53錛堣繖鏄牴鎹簮浠g爜涓畻娉?cksum = (cksum <br />>> 16) + (cksum & 0xffff) 榪涜鐨?錛?<br /><br />鏈鍚庯紝ae53+51ac=ffff銆傚洜姝ゅ垽鏂璱p棣栭儴鍦ㄤ紶杈撹繃紼嬩腑娌℃湁鍙戠敓浠諱綍宸敊銆?/pre><img src ="http://www.tkk7.com/huyi2006/aggbug/118178.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/huyi2006/" target="_blank">鑳℃剰</a> 2007-05-17 21:43 <a href="http://www.tkk7.com/huyi2006/articles/118178.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> 主站蜘蛛池模板: <a href="http://hs969.com" target="_blank">亚洲情XO亚洲色XO无码</a>| <a href="http://bjbanjia01.com" target="_blank">亚洲第一区在线观看</a>| <a href="http://yidazn.com" target="_blank">久久亚洲精品无码AV红樱桃</a>| <a href="http://billtsssrvp.com" target="_blank">99免费精品视频</a>| <a href="http://56kaifa.com" target="_blank">亚洲高清国产拍精品26U</a>| <a href="http://tiantiantegou.com" target="_blank">免费国产污网站在线观看</a>| <a href="http://minliusoft.com" target="_blank">亚洲中文字幕在线观看</a>| <a href="http://www97544.com" target="_blank">3344在线看片免费</a>| <a href="http://joob4s.com" target="_blank">久久亚洲精品成人无码网站</a>| <a href="http://jl910.com" target="_blank">久久国内免费视频</a>| <a href="http://www282pp.com" target="_blank">亚洲精品动漫免费二区</a>| <a href="http://qiseka.com" target="_blank">亚洲国产主播精品极品网红 </a>| <a href="http://0730jxpm.com" target="_blank">日韩电影免费在线</a>| <a href="http://717795.com" target="_blank">亚洲AV成人精品日韩一区 </a>| <a href="http://alodaba.com" target="_blank">自拍偷自拍亚洲精品情侣</a>| <a href="http://43caopen.com" target="_blank">99久久免费国产精精品</a>| <a href="http://xj47777.com" target="_blank">麻豆亚洲AV永久无码精品久久</a>| <a href="http://51nianyefan.com" target="_blank">91精品国产免费</a>| <a href="http://bjqhkf.com" target="_blank">亚洲精品无码一区二区</a>| <a href="http://dangyuming.com" target="_blank">亚洲A∨精品一区二区三区</a>| <a href="http://uiui6.com" target="_blank">两个人看的www免费视频中文</a>| <a href="http://8b22.com" target="_blank">亚洲卡一卡2卡三卡4卡无卡三</a>| <a href="http://yy975.com" target="_blank">久久久久久久91精品免费观看</a>| <a href="http://18736374.com" target="_blank">亚洲国产午夜精品理论片在线播放 </a>| <a href="http://0330196.com" target="_blank">亚洲国产美女精品久久久</a>| <a href="http://56v6.com" target="_blank">亚洲区小说区图片区</a>| <a href="http://33uub.com" target="_blank">最近免费mv在线电影</a>| <a href="http://zc-zk.com" target="_blank">亚洲精品理论电影在线观看</a>| <a href="http://kan63.com" target="_blank">久久国产成人亚洲精品影院</a>| <a href="http://seosuanfa.com" target="_blank">免费A级毛片av无码</a>| <a href="http://js-jiarui.com" target="_blank">亚洲av乱码一区二区三区按摩</a>| <a href="http://wlamyx.com" target="_blank">亚洲中文字幕久久精品无码APP </a>| <a href="http://mottool.com" target="_blank">亚洲五月综合网色九月色</a>| <a href="http://sztsa.com" target="_blank">亚洲第一网站男人都懂</a>| <a href="http://yy6090qpgdy.com" target="_blank">99视频在线免费</a>| <a href="http://1444000.com" target="_blank">亚洲av最新在线观看网址</a>| <a href="http://lybb16.com" target="_blank">亚洲国产精品无码专区影院</a>| <a href="http://www-92109.com" target="_blank">成年人免费观看视频网站</a>| <a href="http://www-84243.com" target="_blank">中文字幕在线免费观看视频</a>| <a href="http://sdyzzs.com" target="_blank">7777久久亚洲中文字幕</a>| <a href="http://igdytt.com" target="_blank">亚洲午夜久久久久久久久久</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>