亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? pcapnet.pas

?? 網絡掃描
?? PAS
字號:
{
    websniffer - PcapNet.pas (Ver1.1)(HTTP connection analysis)
    Copyright (C) 2005 Josef Sch黷zenberger

    websniffer is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    websniffer is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with websniffer; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
}
unit PcapNet;

interface
uses   Windows;
const TH_SYN  =	2;
      TH_FIN  = 1;
      CONNECTION_TIMEOUT = 25 ;  // seconds
type

   TErrBuf=array[0..256] of char;

   Psockaddr = ^Tsockaddr;
   Tsockaddr = packed record
  	   safamily: word ;                  // address family
	   sadata: array[1..14] of char;     // up to 14 bytes of direct address
   end;

   Pcap_addr = ^Tcap_addr;
   Tcap_addr = packed record
           next: pcap_addr ;
	   addr: Psockaddr;      // address
	   netmask: Psockaddr;	 // netmask for that address
	   broadaddr: Psockaddr; // broadcast address for that address
	   dstaddr:Psockaddr;    // P2P destination address for that address
   end;

  Pcap_if = ^Tcap_if;
  Tcap_if = packed record
          next:pcap_if;
          name: LPSTR;           // name to hand to "pcap_open_live()"
          description: LPSTR;    // textual description of interface, or NULL
          addresses:Pcap_addr;
          bpf_u_int32:Cardinal;  // PCAP_IF_ interface flags
  end;
 // Callback function invoked by libpcap for every incoming packet
  packet_handler_procedure= procedure(param,header,pkt_data:Pointer);

type
  PTCP_header= ^TTCP_header;
  TTCP_header= packed record
                    source_port: Word; // endian
                    dest_port: Word; // endian
                    sequence: dWord;
                    tcp_acknowledgement: dWord;
                    tcp_reserved_and_header_size: Byte;
                    flags: Byte;
                    tcp_window_size: Word;
                    tcp_checksum: Word;
                    tcp_last_urgent_byte: Word;
                                   // -- variable size
                    tcp_data: array[0..0] of Byte;
                  end;

  TIPaddress= array[0..3] of BYTE;

  PIP_header= ^TIP_header;
  TIP_header= packed record  // 20 bytes+ data
                    version_and_header_length: Byte;
                    type_of_service: Byte;
                    total_len: Word;
                     // -- identification of a datagram
                    datagram_identification: Word;
                    flag_and_offset: Word;
                    time_to_live: Byte;
                    proto: Byte;
                    check_sum: Word;
                    source_addr: TIPaddress;
                    dest_addr: TIPaddress;
                      // -- variable size
                    ip_data: array[0..0] of Byte;
                  end;

  Ptimeval = ^Ttimeval;
  Ttimeval = packed record
    tv_sec:integer;             // seconds
    tv_usec: integer;           // and microseconds
  end;

  Pcap_pkthdr = ^Tpcap_pkthdr;
  Tpcap_pkthdr = packed record
    ts:Ttimeval;             // time stamp
    caplen: integer;         // length of portion present
    len: integer;            // length this packet (off wire)
  end;
  Tpcap_findalldevs = function (x:pcap_if; lpszName: LPSTR): Cardinal; cdecl;
  Tpcap_freealldevs = procedure (x:pcap_if); cdecl;
  Tpcap_open_live = function (name:LPSTR; portion,promisc,timeout:Integer;errbuf:LPSTR): Pointer; cdecl; 
  Tpcap_loop = function (adhandle:Pointer; i:integer;packet_handler_procedure:Pointer; s:Lpstr): Cardinal; cdecl;
  Tpcap_breakloop = procedure (adhandle:Pointer);cdecl;
  THandle = Integer;
  function URLDecode(Sp: Pchar;Len:integer): String;
  function PChar2String(P:PChar;len:Integer):String;
  function Addr2String(adr:TIPaddress):String;
  function SwapWord(px: PChar): Word;
  function SwapDoubleWord(px: PChar): Cardinal;
  function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
  function SizeOfFile(const FileName: String): integer;

var ConitemNrCount:integer =0;
    Handlewpcap:THandle;
    pcap_findalldevs: Tpcap_findalldevs;
    pcap_freealldevs: Tpcap_freealldevs;
    pcap_open_live: Tpcap_open_live;
    pcap_loop: Tpcap_loop;
    pcap_breakloop: Tpcap_breakloop;

implementation
uses sysutils;
function PChar2String(P:PChar;len:Integer):String;
var i:Integer;
begin
 SetLength(Result,len);
 for i:=1 to len do begin
  result[i]:=P^;
  p:=p+1;
 end;
end;
function Addr2String(adr:TIPaddress):String;
begin
 result:=inttostr(adr[0])+'.'+inttostr(adr[1])+'.'+inttostr(adr[2])+'.'+inttostr(adr[3]);
end;
function SwapWord(px: PChar): Word;
begin
  Result:= (word(px^) shl 8) or (word((px+1)^));
end;

function SwapDoubleWord(px: PChar): Cardinal;
begin
 Result:= (Integer(px^) shl 24) or
          (Integer((px+ 1)^) shl 16) or
          (Integer((px+ 2)^) shl 8) or
          (Integer((px+ 3)^));
end;
function HTTPDecode(const AStr: String): String;
var
  Sp, Rp, Cp: PChar;
  S: String;
begin
  SetLength(Result, Length(AStr));
  Sp := PChar(AStr);
  Rp := PChar(Result);
  Cp := Sp;
  try
    while Sp^ <> #0 do
    begin
      case Sp^ of
        '+': Rp^ := ' ';
        '%': begin
               // Look for an escaped % (%%) or %<hex> encoded character
               Inc(Sp);
               if Sp^ = '%' then
                 Rp^ := '%'
               else
               begin
                 Cp := Sp;
                 Inc(Sp);
                 if (Cp^ <> #0) and (Sp^ <> #0) then
                 begin
                   S := '$' + Cp^ + Sp^;
                   Rp^ := Chr(StrToInt(S));
                 end
                 else
                   raise EConvertError.CreateFmt('sErrorDecodingURLText', [Cp - PChar(AStr)]);
               end;
             end;
      else
        Rp^ := Sp^;
      end;
      Inc(Rp);
      Inc(Sp);
    end;
  except
    on E:EConvertError do
      raise EConvertError.CreateFmt('sInvalidURLEncodedChar',
        ['%' + Cp^ + Sp^, Cp - PChar(AStr)])
  end;
  SetLength(Result, Rp - PChar(Result));
end;
function URLDecode(Sp: Pchar;Len:integer): String;
var
  Rp, Cp, Ep: PChar;
  S: String; i:integer;
begin
  SetLength(Result, Len);
  Rp := PChar(Result);
  Cp := Sp; Ep := Sp+Len;
  try
    while Sp < EP do
    begin
      case Sp^ of
        '+': Rp^ := ' ';
        '%': begin
               // Look for an escaped % (%%) or %<hex> encoded character
               Inc(Sp);
               if Sp^ = '%' then
                 Rp^ := '%'
               else
               begin
                 Cp := Sp;
                 Inc(Sp);
                 if (Cp^ <> #0) and (Sp^ <> #0) then
                 begin
                   S := '$' + Cp^ + Sp^;
                   if TryStrToInt(S,i) and (i<256) then
                    Rp^ := Chr(StrToInt(S)) else
                    Rp^ := Sp^;
                 end
                 else
                   raise EConvertError.CreateFmt('sErrorDecodingURLText', [Cp - Sp]);
               end;
             end;
      else
        Rp^ := Sp^;
      end;
      Inc(Rp);
      Inc(Sp);
    end;
  except
    on E:EConvertError do
      raise EConvertError.CreateFmt('sInvalidURLEncodedChar',
        ['%' + Cp^ + Sp^, Cp - Sp])
  end;
  SetLength(Result, Rp - PChar(Result));
end;
function PosEx(const SubStr, S: string; Offset: Cardinal = 1): Integer;
var
  I,X: Integer;
  Len, LenSubStr: Integer;
begin
  if Offset = 1 then
    Result := Pos(SubStr, S)
  else
  begin
    I := Offset;
    LenSubStr := Length(SubStr);
    Len := Length(S) - LenSubStr + 1;
    while I <= Len do
    begin
      if S[I] = SubStr[1] then
      begin
        X := 1;
        while (X < LenSubStr) and (S[I + X] = SubStr[X + 1]) do
          Inc(X);
        if (X = LenSubStr) then
        begin
          Result := I;
          exit;
        end;
      end;
      Inc(I);
    end;
    Result := 0;
  end;
end;
function SizeOfFile(const FileName: String): integer;
var  f: file;
begin
  result:=0;
  if not FileExists(FileName) then exit;
  AssignFile(f, FileName);
  FileMode := 0;
  Reset(f, 1);
  result:=FileSize(f);
  CloseFile(f);
end;
Initialization
  Handlewpcap := LoadLibrary('wpcap.dll');
  if Handlewpcap <> 0 then
  begin
    @pcap_findalldevs := GetProcAddress(Handlewpcap, 'pcap_findalldevs');
    @pcap_freealldevs := GetProcAddress(Handlewpcap, 'pcap_freealldevs');
    @pcap_open_live:= GetProcAddress(Handlewpcap, 'pcap_open_live');
    @pcap_loop:= GetProcAddress(Handlewpcap, 'pcap_loop');
    @pcap_breakloop:= GetProcAddress(Handlewpcap, 'pcap_breakloop');
    if (@pcap_findalldevs = nil) or (@pcap_freealldevs = nil) or (@pcap_open_live = nil)
     or (@pcap_loop = nil) or (@pcap_breakloop = nil)  then
    begin
      FreeLibrary(Handlewpcap);
      Handlewpcap:=0;
    end;
  end;

finalization
    FreeLibrary(Handlewpcap);
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本va欧美va精品发布| 韩日精品视频一区| 成人黄页在线观看| 国产精品福利一区二区| 91香蕉视频黄| 亚洲欧美国产高清| 5566中文字幕一区二区电影| 日本特黄久久久高潮| 欧美成人伊人久久综合网| 欧美va天堂va视频va在线| 蜜臀av一区二区三区| 麻豆精品久久精品色综合| 国产拍欧美日韩视频二区| 成人不卡免费av| 亚洲综合在线五月| 久久久久久久久久美女| 精品国产一区二区三区av性色 | 欧美大尺度电影在线| 国产一区不卡在线| 亚洲欧美日韩国产一区二区三区| 欧美自拍偷拍午夜视频| 极品销魂美女一区二区三区| 亚洲国产高清在线| 91精品国产一区二区三区| 久久亚洲一区二区三区四区| 在线日韩一区二区| 久久精品视频在线看| 国产成人在线影院| 国产在线日韩欧美| 欧美日韩国产小视频在线观看| 在线观看日韩高清av| 亚洲一区二区三区美女| 亚洲欧美成aⅴ人在线观看| 日韩精品中文字幕在线一区| 在线观看一区二区精品视频| 91免费看视频| 欧美三级电影在线看| 欧美视频一二三区| 911精品产国品一二三产区| 欧洲生活片亚洲生活在线观看| 国产视频一区二区在线观看| 精品福利一区二区三区免费视频| 884aa四虎影成人精品一区| 欧美午夜精品一区二区蜜桃| 91首页免费视频| 成人app软件下载大全免费| 国内精品国产成人国产三级粉色 | 激情五月婷婷综合| 日韩精品一区二区三区蜜臀| 日韩一区二区三区电影| 久久色在线观看| 亚洲精品视频一区二区| 久久国产精品72免费观看| 激情文学综合丁香| 91蜜桃婷婷狠狠久久综合9色| 91蜜桃免费观看视频| 一区二区三区资源| 精品亚洲porn| 91免费在线视频观看| 3751色影院一区二区三区| 中文字幕av一区二区三区高| 亚洲成人黄色影院| 国产成人综合亚洲网站| 在线不卡的av| 精品久久国产老人久久综合| 亚洲人成精品久久久久久| 久久国产精品第一页| 色拍拍在线精品视频8848| 日韩精品影音先锋| 一区二区成人在线| 亚洲日本成人在线观看| 国产剧情一区二区| 日韩一区二区电影| 色中色一区二区| 亚洲国产成人午夜在线一区| 日本亚洲视频在线| 欧洲av一区二区嗯嗯嗯啊| 国产精品成人免费在线| fc2成人免费人成在线观看播放| 欧美刺激午夜性久久久久久久| www.日韩在线| 欧美日韩极品在线观看一区| 亚洲免费看黄网站| 欧美手机在线视频| 免费人成精品欧美精品| 欧美日韩免费高清一区色橹橹| 亚洲一区二区偷拍精品| 欧美日韩一级视频| 日日摸夜夜添夜夜添国产精品 | 亚洲国产日韩a在线播放性色| 一本一本大道香蕉久在线精品 | 777奇米成人网| 国产一区二区毛片| 精品在线观看视频| 在线视频欧美区| 天天爽夜夜爽夜夜爽精品视频| 制服丝袜亚洲色图| 美女视频黄频大全不卡视频在线播放| 日韩欧美亚洲国产另类| 激情小说亚洲一区| 一区二区三区色| 日韩免费视频一区| 91传媒视频在线播放| 精品综合免费视频观看| 在线观看免费视频综合| 久久不见久久见免费视频7| 国产三级精品三级在线专区| 欧美日韩一区不卡| 欧美喷水一区二区| 一区二区三区鲁丝不卡| 久久奇米777| 欧美老女人在线| 国产精品丝袜黑色高跟| 成人午夜短视频| 欧美a级理论片| 亚洲激情欧美激情| 中文字幕免费不卡| 国产日产欧美一区| 精品免费国产一区二区三区四区| 91久久精品一区二区二区| 国产精品一线二线三线精华| 亚洲成人资源网| 亚洲成国产人片在线观看| 亚洲欧美偷拍卡通变态| 白白色 亚洲乱淫| 99精品国产视频| 99国产欧美久久久精品| 91伊人久久大香线蕉| 成人免费毛片a| 色综合咪咪久久| 在线免费观看不卡av| 一本色道亚洲精品aⅴ| 一本色道久久综合亚洲精品按摩| 亚洲欧美一区二区三区国产精品| 国产精品高清亚洲| 亚洲自拍偷拍欧美| 精品一区二区三区蜜桃| 国产suv精品一区二区6| 一本色道久久综合亚洲91 | 精品福利一区二区三区免费视频| 久久久久久一二三区| 国产精品麻豆久久久| 亚洲欧美综合另类在线卡通| 99精品久久只有精品| 91精品国产手机| 国产精品嫩草影院av蜜臀| 国产精品久久久久毛片软件| 亚洲宅男天堂在线观看无病毒| 偷拍与自拍一区| 91在线免费视频观看| 欧美一级一区二区| 日韩制服丝袜先锋影音| 日韩一区二区电影网| 亚洲一区二区免费视频| 欧亚洲嫩模精品一区三区| 91高清视频免费看| 精品视频免费看| 91精品国产手机| 一区二区三区在线视频播放| 成人av在线网站| 色妞www精品视频| 欧美理论电影在线| 久久久久久麻豆| 成人免费在线观看入口| 亚洲一区成人在线| 久久精品国产精品青草| 国产精品亚洲а∨天堂免在线| av网站一区二区三区| 欧美亚洲精品一区| 精品日韩在线观看| 中文字幕综合网| 日韩视频在线观看一区二区| 2023国产精品自拍| 亚洲三级理论片| 日韩高清不卡一区二区三区| 国产精品一二三四| 在线一区二区三区四区| 欧美α欧美αv大片| 亚洲欧洲精品一区二区三区 | 99在线热播精品免费| 欧美在线免费观看亚洲| 精品日韩成人av| 奇米777欧美一区二区| 日日夜夜精品视频天天综合网| 懂色一区二区三区免费观看| 欧美日韩在线亚洲一区蜜芽| 国产目拍亚洲精品99久久精品| 亚洲一区二区三区小说| 国产精品一卡二卡| 欧美理论电影在线| 亚洲欧美在线aaa| 久久99精品国产.久久久久久 | 成人性生交大片免费看视频在线 | 欧美日韩综合一区| 国产日韩欧美激情| 日韩不卡一二三区| 91蜜桃视频在线| 亚洲图片自拍偷拍| 久久综合色综合88| 轻轻草成人在线|