亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
美女一区二区久久| 一本一本大道香蕉久在线精品| 国产专区综合网| 在线观看国产日韩| 久久婷婷久久一区二区三区| 亚洲一区二区欧美| 不卡一区二区三区四区| 日韩免费观看高清完整版| 亚洲一区二区五区| 一本一本久久a久久精品综合麻豆| 久久久五月婷婷| 美女视频黄久久| 69堂精品视频| 亚洲第一福利一区| 91国模大尺度私拍在线视频 | 色欧美88888久久久久久影院| 久久久久久日产精品| 日本在线不卡视频一二三区| 91久久精品午夜一区二区| 国产精品久久午夜夜伦鲁鲁| 国产精品亚洲综合一区在线观看| 欧美一区二区三区白人| 亚洲一区二区三区中文字幕| 一本色道亚洲精品aⅴ| 国产精品无码永久免费888| 国产麻豆精品久久一二三| 欧美第一区第二区| 韩国av一区二区三区四区| 精品福利一区二区三区免费视频| 日韩精品一二三区| 欧美精品久久99| 蜜桃久久久久久| 2022国产精品视频| 国产精品一二三四五| 中文欧美字幕免费| av亚洲精华国产精华精| 亚洲人成小说网站色在线| k8久久久一区二区三区| 亚洲卡通动漫在线| 欧美日韩一区二区欧美激情| 午夜久久久久久| 日韩丝袜美女视频| 国产一区二区日韩精品| 欧美国产精品中文字幕| 99国内精品久久| 亚洲成人高清在线| 欧美一级xxx| 处破女av一区二区| 亚洲精选在线视频| 欧美美女视频在线观看| 美女免费视频一区二区| 国产调教视频一区| 一本大道久久a久久精二百 | 欧美私人免费视频| 青草av.久久免费一区| 久久综合久久综合九色| hitomi一区二区三区精品| 亚洲综合丁香婷婷六月香| 日韩一区二区三区视频在线| 国产精品综合在线视频| 亚洲精品菠萝久久久久久久| 欧美一区二区视频在线观看2020 | 青青草精品视频| 国产精品人妖ts系列视频| 欧美日韩你懂得| 国产福利视频一区二区三区| 亚洲激情中文1区| 欧美xxxxxxxx| 91蜜桃网址入口| 男男视频亚洲欧美| 国产精品久久久久aaaa樱花| 欧美麻豆精品久久久久久| 国产成人综合亚洲91猫咪| 亚洲成人一二三| 国产亚洲一区二区在线观看| 在线视频你懂得一区| 国产精品一二三| 日本在线观看不卡视频| 亚洲欧美另类小说| www久久精品| 欧美一区午夜精品| 91视频91自| 国产成人啪免费观看软件| 五月天欧美精品| 亚洲日本va午夜在线影院| 精品国产一区a| 欧美肥大bbwbbw高潮| 色综合久久久久综合体桃花网| 精品午夜一区二区三区在线观看| 亚洲一区二区三区四区的| 国产精品久久综合| 日本一区二区三区免费乱视频| 7777女厕盗摄久久久| 91久久一区二区| 97久久超碰国产精品| 国产毛片一区二区| 日韩av电影一区| 亚洲18色成人| 亚洲国产wwwccc36天堂| 国产精品免费视频观看| 久久久www成人免费毛片麻豆| 日韩一区二区免费在线电影| 欧美在线高清视频| 色综合久久中文综合久久牛| 国产成人免费视频网站高清观看视频| 久久精品国产网站| 日韩av一级电影| 蜜芽一区二区三区| 美女视频免费一区| 久久91精品国产91久久小草| 免费精品99久久国产综合精品| 婷婷久久综合九色综合绿巨人| 一区二区高清免费观看影视大全| 1区2区3区国产精品| **欧美大码日韩| 亚洲日本丝袜连裤袜办公室| 日韩理论片一区二区| 亚洲色图制服诱惑| 樱桃视频在线观看一区| 夜夜亚洲天天久久| 午夜电影网亚洲视频| 热久久一区二区| 国内精品在线播放| 国产电影精品久久禁18| 成人av先锋影音| 色综合亚洲欧洲| 欧美日韩亚洲综合在线| 欧美伦理影视网| 欧美xxxxxxxx| 国产精品美女久久久久高潮| 亚洲少妇30p| 亚洲午夜在线电影| 免费观看成人鲁鲁鲁鲁鲁视频| 六月丁香综合在线视频| 国产精品一二三四区| 色综合天天综合网国产成人综合天| 色悠悠亚洲一区二区| 欧美日韩二区三区| 亚洲精品一区在线观看| 国产精品狼人久久影院观看方式| 亚洲色图色小说| 免费观看在线综合色| 国产成人免费高清| 欧美日韩一区三区| 国产日韩精品视频一区| 一区二区三区视频在线看| 日韩精品电影一区亚洲| 国产成人综合自拍| 在线精品视频一区二区| 精品三级在线看| 亚洲美女免费视频| 精品一区精品二区高清| 99国产精品久久久久久久久久 | 91视频免费看| 日韩网站在线看片你懂的| 亚洲日本一区二区| 国产一区二区在线看| 日本道免费精品一区二区三区| 日韩免费一区二区| 亚洲曰韩产成在线| 成人美女视频在线看| 日韩欧美国产综合在线一区二区三区| 国产精品久久久久aaaa| 久久精品久久99精品久久| 色婷婷综合在线| 国产欧美日韩精品在线| 午夜精品福利一区二区蜜股av| 国产成人av电影| 91精品国产91综合久久蜜臀| 亚洲视频香蕉人妖| 国产iv一区二区三区| 日韩一级精品视频在线观看| 亚洲欧美精品午睡沙发| 国产成人av在线影院| 日韩欧美一卡二卡| 五月天中文字幕一区二区| 99国产精品国产精品毛片| 亚洲精品在线免费播放| 蜜臀国产一区二区三区在线播放 | 欧美xingq一区二区| 一区二区三区 在线观看视频| 成人高清在线视频| 久久日一线二线三线suv| 日韩国产在线一| 欧美色图免费看| 亚洲男同性视频| 99久久久久久| 一区二区中文视频| 成人av电影在线网| 国产喷白浆一区二区三区| 国产麻豆精品theporn| 精品国产区一区| 国产综合色产在线精品| 欧美一级专区免费大片| 日韩经典中文字幕一区| 制服丝袜亚洲播放| 日本午夜精品视频在线观看 | 欧美日韩精品一区二区天天拍小说| 国产精品久久久久三级| 成人福利视频网站|