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

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

?? cap_ip.~pas

?? 查詢局域網IP STATUS_FAILED =$FFFF //定義異常出錯代碼 MAX_PACK_LEN =65535 //接收的最大IP報文
?? ~PAS
?? 第 1 頁 / 共 2 頁
字號:
   end;
  pPtr := PaPInAddr(phe^.h_addr_list);
  I := 0;
  while (pPtr^[I] <> nil) and (i<20) do
   begin
    FActiveIP[I]:=inet_ntoa(pptr^[I]^);
    Inc(I);
   end;
  setlength(FActiveIP,i);
end;

procedure Tcap_ip.set_socket_state;
var
  i,iErrorCode:integer;
  sa: tSockAddrIn;
  dwBufferLen:array[0..10]of DWORD;
  dwBufferInLen:DWORD;
  dwBytesReturned:DWORD;
begin
   if high(FActiveIP)=-1 then exit;
   setlength(Fsocket,high(FActiveIP)+1);
   for i:=0 to high(FActiveIP) do
     begin
       Fsocket[i]:= socket(AF_INET , SOCK_RAW , IPPROTO_IP);
       sa.sin_family:= AF_INET;
       sa.sin_port := htons(i);
       sa.sin_addr.S_addr:=Inet_addr(pchar(FActiveIP[i]));
       iErrorCode := bind(Fsocket[i],sa, sizeof(sa));
       CheckSockError(iErrorCode);

       dwBufferInLen := 1 ;
       dwBytesReturned:=0;
 //設置Fsocket為SIO_RCVALL接收所有的IP包
       iErrorCode:=FWSAIoctl(Fsocket[i], SIO_RCVALL,@dwBufferInLen, sizeof(dwBufferInLen),
                        @dwBufferLen, sizeof(dwBufferLen),@dwBytesReturned ,nil ,nil);

	CheckSockError(iErrorCode);
        iErrorCode:=WSAAsyncSelect(Fsocket[i],FWindowHandle,WM_CapIp+i,FD_READ or FD_CLOSE);
	CheckSockError(iErrorCode);
     end;
end;

//讀IP數據
procedure Tcap_ip.cap_ip(socket_no:integer);
var
  iErrorCode:integer;
  RecvBuf:array[0..MAX_PACK_LEN] of char;
begin
     fillchar(RecvBuf,sizeof(RecvBuf),0);
     iErrorCode := frecv(Fsocket[socket_no], RecvBuf, sizeof(RecvBuf), 0);
     CheckSockError(iErrorCode);
    if not Fpause then
     begin
     iErrorCode := DecodeIpPack(FActiveIP[socket_no],RecvBuf, iErrorCode);
     CheckSockError(iErrorCode);
     end;
end;

//協議識別程序
function Tcap_ip.CheckProtocol(iProtocol:integer):string;
var
 i:integer;
begin
  result:='';
   case iProtocol of
     IPPROTO_IP   :result:='IP';
     IPPROTO_ICMP :result:='ICMP';
     IPPROTO_IGMP :result:='IGMP';
     IPPROTO_GGP  :result:='GGP';
     IPPROTO_TCP  :result:='TCP';
     IPPROTO_PUP  :result:='PUP';
     IPPROTO_UDP  :result:='UDP';
     IPPROTO_IDP  :result:='IDP';
     IPPROTO_ND   :result:='NP';
     IPPROTO_RAW  :result:='RAW';
     IPPROTO_MAX  :result:='MAX';
    else          result:='';
   end;
end;


//IP解包程序
function Tcap_ip.DecodeIpPack(ip:string;buf:pchar;iBufSize:integer):integer;
var
  SourcePort,DestPort:word;
  iProtocol, iTTL:integer;
  szProtocol :array[0..MAX_PROTO_TEXT_LEN] of char;
  szSourceIP :array[0..MAX_ADDR_LEN] of char;
  szDestIP   :array[0..MAX_ADDR_LEN] of char;

  pIpheader:IP_HEADER;
  pTcpHeader:TCP_HEADER;
  pUdpHeader:UDP_HEADER;
  pIcmpHeader:ICMP_HEADER;
  saSource, saDest:TSockAddrIn;
  iIphLen,data_size:integer;
  TcpHeaderLen:integer;
  TcpData:pchar;
begin
        result:=0;
        CopyMemory(@pIpheader,buf,sizeof(pIpheader));
//協議甄別
	iProtocol := pIpheader.proto;
	StrLCopy(szProtocol, pchar(CheckProtocol(iProtocol)),15);

//源地址
	saSource.sin_addr.s_addr := pIpheader.sourceIP;
	strlcopy(szSourceIP, inet_ntoa(saSource.sin_addr), MAX_ADDR_LEN);
//目的地址
	saDest.sin_addr.s_addr := pIpheader.destIP;
	strLcopy(szDestIP, inet_ntoa(saDest.sin_addr), MAX_ADDR_LEN);
	iTTL := pIpheader.ttl;
//計算IP首部的長度
	iIphLen :=sizeof(pIpheader);
//根據協議類型分別調用相應的函數
	case iProtocol of
           IPPROTO_TCP	:begin
                          CopyMemory(@pTcpHeader,buf+iIphLen,sizeof(pTcpHeader));
                          SourcePort := ntohs(pTcpHeader.TCP_Sport);//源端口
                          DestPort := ntohs(pTcpHeader.TCP_Dport);  //目的端口
                          TcpData:=buf+iIphLen+sizeof(pTcpHeader);
                          data_size:=iBufSize-iIphLen-sizeof(pTcpHeader);
                         end;
	   IPPROTO_UDP	:begin
                          CopyMemory(@pUdpHeader,buf+iIphLen,sizeof(pUdpHeader));
                          SourcePort := ntohs(pUdpHeader.uh_sport);//源端口
                          DestPort := ntohs(pUdpHeader.uh_dport);  //目的端口
                          TcpData:=buf+iIphLen+sizeof(pUdpHeader);
                          data_size:=iBufSize-iIphLen-sizeof(pUdpHeader);
                         end;
	   IPPROTO_ICMP	:begin
                          CopyMemory(@pIcmpHeader,buf+iIphLen,sizeof(pIcmpHeader));
                          SourcePort := pIcmpHeader.i_type;//類型
                          DestPort := pIcmpHeader.i_code;  //代碼
                          TcpData:=buf+iIphLen+sizeof(pIcmpHeader);
                          data_size:=iBufSize-iIphLen-sizeof(pIcmpHeader);
                         end;
	   else begin
                    SourcePort :=0;
                    DestPort := 0;  //代碼
                    TcpData:=buf+iIphLen;
                    data_size:=iBufSize-iIphLen;
                end;
	end;

  if Assigned(FOnCap) then
   FOnCap(ip,szProtocol,szSourceIP,szDestIP,inttostr(SourcePort),inttostr(DestPort)
          ,buf,iBufSize-data_size,TcpData,data_size);
end;

//SOCK錯誤處理程序
function Tcap_ip.CheckSockError(iErrorCode:integer):boolean;	//出錯處理函數
begin
    if(iErrorCode=SOCKET_ERROR) then
     begin
       if Assigned(FOnError) then FOnError(inttostr(GetLastError)+SysErrorMessage(GetLastError));
       result:=true;
     end else result:=false;
end;

procedure Tcap_ip.WndProc(var MsgRec: TMessage);
begin
    with MsgRec do
     if (Msg >=WM_CapIp) and (Msg <= WM_CapIp+high(FActiveIP)) then
         cap_ip(msg-WM_CapIp)
       else
       Result := DefWindowProc(Handle, Msg, wParam, lParam);

end;

constructor Tcap_ip.Create(Owner : TComponent);
begin
    Inherited Create(Owner);
    Fpause:=false;
    Finitsocket:=false;
    setlength(Fsocket,0);

    FWindowHandle := XSocketAllocateHWnd(Self);
end;


{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *}
destructor Tcap_ip.Destroy;
var i:integer;
begin
   for i:=0 to high(Fsocket) do FCloseSocket(Fsocket[i]);
   if self.Finitsocket then
     begin
       FWSACleanup;
      if Fhand_dll <> 0 then FreeLibrary(Fhand_dll);
     end; 
    inherited Destroy;
end;

function  Tcap_ip.init_socket:boolean;//初始化
var
 GInitData:TWSAData;
begin
    result:=true;
    IF Finitsocket then exit;
    Fhand_dll := LoadLibrary('ws2_32.dll');
    if Fhand_dll = 0 then
      begin
        raise ESocketException.Create('Unable to register ws2_32.dll');
        result:=false;
        exit;
      end;
    @FWSAStartup  := GetProcAddress(Fhand_dll, 'WSAStartup');

    @FOpenSocket :=  GetProcAddress(Fhand_dll, 'socket');
    @FInet_addr :=   GetProcAddress(Fhand_dll, 'inet_addr');
    @Fhtons  :=      GetProcAddress(Fhand_dll, 'htons');
    @FConnect :=     GetProcAddress(Fhand_dll, 'connect');
    @FCloseSocket := GetProcAddress(Fhand_dll, 'closesocket');
    @Fsend        := GetProcAddress(Fhand_dll, 'send');
    @FWSAIoctl := GetProcAddress(Fhand_dll, 'WSAIoctl');
    @Frecv        := GetProcAddress(Fhand_dll, 'recv');
    @FWSACleanup  := GetProcAddress(Fhand_dll, 'WSACleanup');
    @FWSAAsyncSelect:=GetProcAddress(Fhand_dll, 'WSAAsyncSelect');
    if (@FWSAStartup =nil) or(@Fhtons =nil) or (@FConnect =nil) or (@Fsend =nil) or (@FWSACleanup=nil) or
       (@FOpenSocket =nil) or (@FInet_addr =nil)or (@FCloseSocket =nil) or (@recv=nil)or (@FWSAIoctl=nil)
       or (@FWSAAsyncSelect=nil) then
         begin
          raise ESocketException.Create('加載dll函數錯誤!');
          result:=false;
          exit;
         end;

   if FWSAStartup($201,GInitData)<>0 then
     begin
      raise ESocketException.Create('初始化SOCKET2函數失敗!');
      result:=false;
      exit;
     end;
  Finitsocket:=true;
end;
procedure  Tcap_ip.StartCap;
begin
 if not Finitsocket then
    if not init_socket then exit;
   get_ActiveIP;
   set_socket_state;
end;
procedure  Tcap_ip.pause;
begin
  if Finitsocket and (high(Fsocket)>-1) then
    Fpause:=not Fpause;
end;

procedure  Tcap_ip.StopCap;
var i:integer;
begin
   for i:=0 to high(Fsocket) do FCloseSocket(Fsocket[i]);
end;

procedure Register;
begin
    RegisterComponents('Standard', [Tcap_ip]);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区二区无线| 欧美一级片在线看| 91精品福利在线一区二区三区 | 欧美xxxxxxxxx| 亚洲人成网站在线| 国产成a人亚洲| 日韩免费在线观看| 亚洲在线视频一区| 成人免费福利片| 久久综合九色综合欧美亚洲| 午夜电影网亚洲视频| 成人性生交大片免费看视频在线| 欧美大胆一级视频| 日韩在线观看一区二区| 欧美私人免费视频| 亚洲日本成人在线观看| 国产成人免费视频| 精品国产乱子伦一区| 日韩国产精品久久久久久亚洲| 一本色道久久综合亚洲91| 国产欧美1区2区3区| 精品一区二区三区在线播放视频| 欧美精品久久99久久在免费线| 亚洲欧美乱综合| 91日韩在线专区| 1区2区3区精品视频| 99综合影院在线| 综合久久综合久久| 91色乱码一区二区三区| 日韩理论电影院| 91亚洲精品乱码久久久久久蜜桃| 中文字幕永久在线不卡| av电影天堂一区二区在线观看| 国产欧美精品一区二区三区四区 | 精品国产青草久久久久福利| 天天亚洲美女在线视频| 宅男噜噜噜66一区二区66| 日韩中文字幕一区二区三区| 91精品国产91久久综合桃花| 免费观看在线综合| 久久久久久久久久久黄色| 狠狠色丁香婷综合久久| 国产欧美日韩激情| 99re热这里只有精品免费视频 | 亚洲一二三级电影| 欧美美女喷水视频| 久久国产精品99久久人人澡| 日韩欧美成人激情| 成人午夜视频在线观看| 亚洲视频在线一区| 欧美午夜精品久久久久久超碰| 视频一区视频二区中文| 精品国内二区三区| 不卡的av在线播放| 亚洲国产成人av好男人在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 欧美日韩国产综合一区二区| 日本在线不卡一区| 国产欧美精品国产国产专区 | 欧美电影免费观看高清完整版| 国产美女精品人人做人人爽| 国产精品久久久久久妇女6080| 欧美艳星brazzers| 国产在线精品一区二区三区不卡| 国产精品成人免费在线| 欧美精品xxxxbbbb| 成人一区二区三区在线观看| 一片黄亚洲嫩模| 337p粉嫩大胆噜噜噜噜噜91av| 91丨porny丨首页| 美女性感视频久久| 亚洲人成网站影音先锋播放| 日韩精品一区二区三区中文不卡| 97精品视频在线观看自产线路二| 午夜久久电影网| 中文字幕一区日韩精品欧美| 欧美一级欧美三级在线观看| heyzo一本久久综合| 日本伊人色综合网| 国产精品萝li| 欧美电视剧在线看免费| 91传媒视频在线播放| 国产一区美女在线| 日韩精品久久久久久| 国产精品大尺度| 久久综合九色综合久久久精品综合| 91福利在线导航| 成人av电影免费在线播放| 久久国产三级精品| 香蕉久久夜色精品国产使用方法 | 久久午夜国产精品| 欧美日韩国产不卡| 91黄视频在线| 99精品欧美一区| 国产一区欧美一区| 男女激情视频一区| 亚洲高清免费在线| 亚洲综合成人在线| 一区在线播放视频| 国产精品私人自拍| 国产三级精品三级| 久久人人97超碰com| 日韩午夜电影在线观看| 制服丝袜成人动漫| 欧美日本一区二区| 欧美日韩久久久| 欧美图片一区二区三区| 91女厕偷拍女厕偷拍高清| 波波电影院一区二区三区| 国产福利91精品一区| 国产白丝网站精品污在线入口| 老色鬼精品视频在线观看播放| 天天综合网 天天综合色| 天天色天天操综合| 日韩国产精品91| 免费观看在线色综合| 麻豆成人久久精品二区三区红| 日韩电影免费一区| 麻豆视频观看网址久久| 久久99久久精品| 国产成人免费视| www.亚洲激情.com| 色婷婷久久久亚洲一区二区三区| 色老汉av一区二区三区| 欧美午夜片在线看| 91精品中文字幕一区二区三区| 91精品国产欧美一区二区成人| 日韩欧美亚洲国产另类| 精品999久久久| 国产精品视频第一区| 亚洲精品久久久久久国产精华液| 亚洲精品福利视频网站| 亚洲国产精品人人做人人爽| 视频一区二区国产| 精品一区二区三区蜜桃| 成人午夜大片免费观看| 在线观看日韩电影| 欧美一二三四区在线| 久久综合精品国产一区二区三区| 国产女人18水真多18精品一级做| 中文字幕在线视频一区| 亚洲bt欧美bt精品777| 久草在线在线精品观看| 国产凹凸在线观看一区二区| 色综合久久久久久久久久久| 欧美色涩在线第一页| 欧美大肚乱孕交hd孕妇| 中文字幕中文乱码欧美一区二区| 亚洲午夜一区二区三区| 国产又粗又猛又爽又黄91精品| 色综合久久久久网| 精品国产成人系列| 亚洲精品欧美激情| 国产乱码精品一区二区三区五月婷| 色综合久久久久综合| 日韩午夜在线影院| 亚洲黄色尤物视频| 韩国视频一区二区| 欧美区一区二区三区| 中文字幕av不卡| 日韩精品1区2区3区| 91色婷婷久久久久合中文| 日韩欧美国产精品一区| 亚洲激情图片小说视频| 国产激情视频一区二区三区欧美| 欧美在线观看一区二区| 国产欧美日韩在线观看| 日韩精品成人一区二区在线| 91网址在线看| 久久精品男人的天堂| 日本不卡视频在线| 欧美在线观看禁18| 国产精品久久久久一区二区三区| 美女一区二区三区| 欧美久久久一区| 一级特黄大欧美久久久| www.一区二区| 国产校园另类小说区| 久久99精品国产| 制服视频三区第一页精品| 亚洲综合免费观看高清在线观看| 成人精品视频网站| 2023国产一二三区日本精品2022| 三级不卡在线观看| 欧美日韩亚洲综合| 亚洲一区二区不卡免费| 91在线视频网址| 国产精品久久久久久久岛一牛影视| 久久se这里有精品| 欧美va亚洲va在线观看蝴蝶网| 日日夜夜免费精品| 6080亚洲精品一区二区| 亚洲成年人影院| 欧美日本在线视频| 午夜精品福利一区二区三区av | 久久精品亚洲一区二区三区浴池| 久久精工是国产品牌吗| 欧美videofree性高清杂交| 蜜臀av性久久久久蜜臀av麻豆| 欧美精品一二三|