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

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

?? ftp.pm

?? 視頻監控網絡部分的協議ddns,的模塊的實現代碼,請大家大膽指正.
?? PM
?? 第 1 頁 / 共 3 頁
字號:
  my ($ftp, $where) = @_;  ${*$ftp}{'net_ftp_rest'} = $where;  return undef;}sub mkdir {  @_ == 2 || @_ == 3 or croak 'usage: $ftp->mkdir( DIR [, RECURSE ] )';  my ($ftp, $dir, $recurse) = @_;  $ftp->_MKD($dir) || $recurse    or return undef;  my $path = $dir;  unless ($ftp->ok) {    my @path = split(m#(?=/+)#, $dir);    $path = "";    while (@path) {      $path .= shift @path;      $ftp->_MKD($path);      $path = $ftp->_extract_path($path);    }    # If the creation of the last element was not successful, see if we    # can cd to it, if so then return path    unless ($ftp->ok) {      my ($status, $message) = ($ftp->status, $ftp->message);      my $pwd = $ftp->pwd;      if ($pwd && $ftp->cwd($dir)) {        $path = $dir;        $ftp->cwd($pwd);      }      else {        undef $path;      }      $ftp->set_status($status, $message);    }  }  $path;}sub delete {  @_ == 2 || croak 'usage: $ftp->delete( FILENAME )';  $_[0]->_DELE($_[1]);}sub put        { shift->_store_cmd("stor", @_) }sub put_unique { shift->_store_cmd("stou", @_) }sub append     { shift->_store_cmd("appe", @_) }sub nlst { shift->_data_cmd("NLST", @_) }sub list { shift->_data_cmd("LIST", @_) }sub retr { shift->_data_cmd("RETR", @_) }sub stor { shift->_data_cmd("STOR", @_) }sub stou { shift->_data_cmd("STOU", @_) }sub appe { shift->_data_cmd("APPE", @_) }sub _store_cmd {  my ($ftp, $cmd, $local, $remote) = @_;  my ($loc, $sock, $len, $buf);  local *FD;  my $localfd = ref($local) || ref(\$local) eq "GLOB";  unless (defined $remote) {    croak 'Must specify remote filename with stream input'      if $localfd;    require File::Basename;    $remote = File::Basename::basename($local);  }  if (defined ${*$ftp}{'net_ftp_allo'}) {    delete ${*$ftp}{'net_ftp_allo'};  }  else {    # if the user hasn't already invoked the alloc method since the last    # _store_cmd call, figure out if the local file is a regular file(not    # a pipe, or device) and if so get the file size from stat, and send    # an ALLO command before sending the STOR, STOU, or APPE command.    my $size = do { local $^W; -f $local && -s _ };    # no ALLO if sending data from a pipe    $ftp->_ALLO($size) if $size;  }  croak("Bad remote filename '$remote'\n")    if $remote =~ /[\r\n]/s;  if ($localfd) {    $loc = $local;  }  else {    $loc = \*FD;    unless (sysopen($loc, $local, O_RDONLY)) {      carp "Cannot open Local file $local: $!\n";      return undef;    }  }  if ($ftp->type eq 'I' && !binmode($loc)) {    carp "Cannot binmode Local file $local: $!\n";    return undef;  }  delete ${*$ftp}{'net_ftp_port'};  delete ${*$ftp}{'net_ftp_pasv'};  $sock = $ftp->_data_cmd($cmd, $remote)    or return undef;  $remote = ($ftp->message =~ /FILE:\s*(.*)/)[0]    if 'STOU' eq uc $cmd;  my $blksize = ${*$ftp}{'net_ftp_blksize'};  my ($count, $hashh, $hashb, $ref) = (0);  ($hashh, $hashb) = @$ref    if ($ref = ${*$ftp}{'net_ftp_hash'});  while (1) {    last unless $len = read($loc, $buf = "", $blksize);    if (trEBCDIC && $ftp->type ne 'I') {      $buf = $ftp->toascii($buf);      $len = length($buf);    }    if ($hashh) {      $count += $len;      print $hashh "#" x (int($count / $hashb));      $count %= $hashb;    }    my $wlen;    unless (defined($wlen = $sock->write($buf, $len)) && $wlen == $len) {      $sock->abort;      close($loc)        unless $localfd;      print $hashh "\n" if $hashh;      return undef;    }  }  print $hashh "\n" if $hashh;  close($loc)    unless $localfd;  $sock->close()    or return undef;  if ('STOU' eq uc $cmd and $ftp->message =~ m/unique\s+file\s*name\s*:\s*(.*)\)|"(.*)"/) {    require File::Basename;    $remote = File::Basename::basename($+);  }  return $remote;}sub port {  @_ == 1 || @_ == 2 or croak 'usage: $ftp->port([PORT])';  my ($ftp, $port) = @_;  my $ok;  delete ${*$ftp}{'net_ftp_intern_port'};  unless (defined $port) {    # create a Listen socket at same address as the command socket    ${*$ftp}{'net_ftp_listen'} ||= IO::Socket::INET->new(      Listen    => 5,      Proto     => 'tcp',      Timeout   => $ftp->timeout,      LocalAddr => $ftp->sockhost,    );    my $listen = ${*$ftp}{'net_ftp_listen'};    my ($myport, @myaddr) = ($listen->sockport, split(/\./, $listen->sockhost));    $port = join(',', @myaddr, $myport >> 8, $myport & 0xff);    ${*$ftp}{'net_ftp_intern_port'} = 1;  }  $ok = $ftp->_PORT($port);  ${*$ftp}{'net_ftp_port'} = $port;  $ok;}sub ls  { shift->_list_cmd("NLST", @_); }sub dir { shift->_list_cmd("LIST", @_); }sub pasv {  @_ == 1 or croak 'usage: $ftp->pasv()';  my $ftp = shift;  delete ${*$ftp}{'net_ftp_intern_port'};  $ftp->_PASV && $ftp->message =~ /(\d+(,\d+)+)/    ? ${*$ftp}{'net_ftp_pasv'} = $1    : undef;}sub unique_name {  my $ftp = shift;  ${*$ftp}{'net_ftp_unique'} || undef;}sub supported {  @_ == 2 or croak 'usage: $ftp->supported( CMD )';  my $ftp  = shift;  my $cmd  = uc shift;  my $hash = ${*$ftp}{'net_ftp_supported'} ||= {};  return $hash->{$cmd}    if exists $hash->{$cmd};  return $hash->{$cmd} = 0    unless $ftp->_HELP($cmd);  my $text = $ftp->message;  if ($text =~ /following\s+commands/i) {    $text =~ s/^.*\n//;    while ($text =~ /(\*?)(\w+)(\*?)/sg) {      $hash->{"\U$2"} = !length("$1$3");    }  }  else {    $hash->{$cmd} = $text !~ /unimplemented/i;  }  $hash->{$cmd} ||= 0;}#### Deprecated methods##sub lsl {  carp "Use of Net::FTP::lsl deprecated, use 'dir'"    if $^W;  goto &dir;}sub authorise {  carp "Use of Net::FTP::authorise deprecated, use 'authorize'"    if $^W;  goto &authorize;}#### Private methods##sub _extract_path {  my ($ftp, $path) = @_;  # This tries to work both with and without the quote doubling  # convention (RFC 959 requires it, but the first 3 servers I checked  # didn't implement it).  It will fail on a server which uses a quote in  # the message which isn't a part of or surrounding the path.  $ftp->ok    && $ftp->message =~ /(?:^|\s)\"(.*)\"(?:$|\s)/    && ($path = $1) =~ s/\"\"/\"/g;  $path;}#### Communication methods##sub _dataconn {  my $ftp  = shift;  my $data = undef;  my $pkg  = "Net::FTP::" . $ftp->type;  eval "require " . $pkg;  $pkg =~ s/ /_/g;  delete ${*$ftp}{'net_ftp_dataconn'};  if (defined ${*$ftp}{'net_ftp_pasv'}) {    my @port = map { 0 + $_ } split(/,/, ${*$ftp}{'net_ftp_pasv'});    $data = $pkg->new(      PeerAddr  => join(".", @port[0 .. 3]),      PeerPort  => $port[4] * 256 + $port[5],      LocalAddr => ${*$ftp}{'net_ftp_localaddr'},      Proto     => 'tcp'    );  }  elsif (defined ${*$ftp}{'net_ftp_listen'}) {    $data = ${*$ftp}{'net_ftp_listen'}->accept($pkg);    close(delete ${*$ftp}{'net_ftp_listen'});  }  if ($data) {    ${*$data} = "";    $data->timeout($ftp->timeout);    ${*$ftp}{'net_ftp_dataconn'} = $data;    ${*$data}{'net_ftp_cmd'}     = $ftp;    ${*$data}{'net_ftp_blksize'} = ${*$ftp}{'net_ftp_blksize'};  }  $data;}sub _list_cmd {  my $ftp = shift;  my $cmd = uc shift;  delete ${*$ftp}{'net_ftp_port'};  delete ${*$ftp}{'net_ftp_pasv'};  my $data = $ftp->_data_cmd($cmd, @_);  return    unless (defined $data);  require Net::FTP::A;  bless $data, "Net::FTP::A";    # Force ASCII mode  my $databuf = '';  my $buf     = '';  my $blksize = ${*$ftp}{'net_ftp_blksize'};  while ($data->read($databuf, $blksize)) {    $buf .= $databuf;  }  my $list = [split(/\n/, $buf)];  $data->close();  if (trEBCDIC) {    for (@$list) { $_ = $ftp->toebcdic($_) }  }  wantarray    ? @{$list}    : $list;}sub _data_cmd {  my $ftp   = shift;  my $cmd   = uc shift;  my $ok    = 1;  my $where = delete ${*$ftp}{'net_ftp_rest'} || 0;  my $arg;  for $arg (@_) {    croak("Bad argument '$arg'\n")      if $arg =~ /[\r\n]/s;  }  if ( ${*$ftp}{'net_ftp_passive'}    && !defined ${*$ftp}{'net_ftp_pasv'}    && !defined ${*$ftp}{'net_ftp_port'})  {    my $data = undef;    $ok = defined $ftp->pasv;    $ok = $ftp->_REST($where)      if $ok && $where;    if ($ok) {      $ftp->command($cmd, @_);      $data = $ftp->_dataconn();      $ok   = CMD_INFO == $ftp->response();      if ($ok) {        $data->reading          if $data && $cmd =~ /RETR|LIST|NLST/;        return $data;      }      $data->_close        if $data;    }    return undef;  }  $ok = $ftp->port    unless (defined ${*$ftp}{'net_ftp_port'}    || defined ${*$ftp}{'net_ftp_pasv'});  $ok = $ftp->_REST($where)    if $ok && $where;  return undef    unless $ok;  $ftp->command($cmd, @_);  return 1    if (defined ${*$ftp}{'net_ftp_pasv'});  $ok = CMD_INFO == $ftp->response();  return $ok    unless exists ${*$ftp}{'net_ftp_intern_port'};  if ($ok) {    my $data = $ftp->_dataconn();    $data->reading      if $data && $cmd =~ /RETR|LIST|NLST/;    return $data;  }  close(delete ${*$ftp}{'net_ftp_listen'});  return undef;}#### Over-ride methods (Net::Cmd)##sub debug_text { $_[2] =~ /^(pass|resp|acct)/i ? "$1 ....\n" : $_[2]; }sub command {  my $ftp = shift;  delete ${*$ftp}{'net_ftp_port'};  $ftp->SUPER::command(@_);}sub response {  my $ftp  = shift;  my $code = $ftp->SUPER::response();  delete ${*$ftp}{'net_ftp_pasv'}    if ($code != CMD_MORE && $code != CMD_INFO);  $code;}sub parse_response {  return ($1, $2 eq "-")    if $_[1] =~ s/^(\d\d\d)([- ]?)//o;  my $ftp = shift;  # Darn MS FTP server is a load of CRAP !!!!  return ()    unless ${*$ftp}{'net_cmd_code'} + 0;  (${*$ftp}{'net_cmd_code'}, 1);}#### Allow 2 servers to talk directly##sub pasv_xfer_unique {  my ($sftp, $sfile, $dftp, $dfile) = @_;  $sftp->pasv_xfer($sfile, $dftp, $dfile, 1);}sub pasv_xfer {  my ($sftp, $sfile, $dftp, $dfile, $unique) = @_;  ($dfile = $sfile) =~ s#.*/##    unless (defined $dfile);  my $port = $sftp->pasv    or return undef;  $dftp->port($port)    or return undef;  return undef    unless ($unique ? $dftp->stou($dfile) : $dftp->stor($dfile));  unless ($sftp->retr($sfile) && $sftp->response == CMD_INFO) {    $sftp->retr($sfile);    $dftp->abort;    $dftp->response();    return undef;  }  $dftp->pasv_wait($sftp);}sub pasv_wait {  @_ == 2 or croak 'usage: $ftp->pasv_wait(NON_PASV_FTP)';  my ($ftp, $non_pasv) = @_;  my ($file, $rin, $rout);  vec($rin = '', fileno($ftp), 1) = 1;  select($rout = $rin, undef, undef, undef);  $ftp->response();  $non_pasv->response();  return undef    unless $ftp->ok() && $non_pasv->ok();  return $1    if $ftp->message =~ /unique file name:\s*(\S*)\s*\)/;  return $1    if $non_pasv->message =~ /unique file name:\s*(\S*)\s*\)/;  return 1;}sub feature {  @_ == 2 or croak 'usage: $ftp->feature( NAME )';  my ($ftp, $feat) = @_;  my $feature = ${*$ftp}{net_ftp_feature} ||= do {    my @feat;    # Example response    # 211-Features:    #  MDTM    #  REST STREAM    #  SIZE    # 211 End    @feat = map { /^\s+(.*\S)/ } $ftp->message      if $ftp->_FEAT;    \@feat;  };  return grep { /^\Q$feat\E\b/i } @$feature;}sub cmd { shift->command(@_)->response() }########################################## RFC959 commands#sub _ABOR { shift->command("ABOR")->response() == CMD_OK }sub _ALLO { shift->command("ALLO", @_)->response() == CMD_OK }sub _CDUP { shift->command("CDUP")->response() == CMD_OK }sub _NOOP { shift->command("NOOP")->response() == CMD_OK }sub _PASV { shift->command("PASV")->response() == CMD_OK }sub _QUIT { shift->command("QUIT")->response() == CMD_OK }sub _DELE { shift->command("DELE", @_)->response() == CMD_OK }sub _CWD  { shift->command("CWD", @_)->response() == CMD_OK }sub _PORT { shift->command("PORT", @_)->response() == CMD_OK }sub _RMD  { shift->command("RMD", @_)->response() == CMD_OK }sub _MKD  { shift->command("MKD", @_)->response() == CMD_OK }sub _PWD  { shift->command("PWD", @_)->response() == CMD_OK }sub _TYPE { shift->command("TYPE", @_)->response() == CMD_OK }sub _RNTO { shift->command("RNTO", @_)->response() == CMD_OK }sub _RESP { shift->command("RESP", @_)->response() == CMD_OK }sub _MDTM { shift->command("MDTM", @_)->response() == CMD_OK }sub _SIZE { shift->command("SIZE", @_)->response() == CMD_OK }sub _HELP { shift->command("HELP", @_)->response() == CMD_OK }sub _STAT { shift->command("STAT", @_)->response() == CMD_OK }sub _FEAT { shift->command("FEAT", @_)->response() == CMD_OK }sub _APPE { shift->command("APPE", @_)->response() == CMD_INFO }sub _LIST { shift->command("LIST", @_)->response() == CMD_INFO }sub _NLST { shift->command("NLST", @_)->response() == CMD_INFO }sub _RETR { shift->command("RETR", @_)->response() == CMD_INFO }sub _STOR { shift->command("STOR", @_)->response() == CMD_INFO }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
最新中文字幕一区二区三区| 国产揄拍国内精品对白| 久久99精品一区二区三区| 粉嫩一区二区三区性色av| 欧美日韩亚洲综合一区二区三区| 国产视频一区二区三区在线观看 | 国产喂奶挤奶一区二区三区| 亚洲人成网站影音先锋播放| 久久er99精品| 欧美精品日韩综合在线| 亚洲欧美日韩国产综合在线 | 亚洲黄色免费网站| 成人一区在线看| 精品免费日韩av| 香蕉av福利精品导航| 99久久免费精品高清特色大片| 精品国产乱码久久久久久蜜臀| 亚洲在线免费播放| 91小视频免费看| 国产精品久久二区二区| 国产不卡视频在线播放| 久久久久久久久久电影| 国内一区二区视频| 日韩免费观看高清完整版| 日韩成人午夜电影| 51精品国自产在线| 日韩成人免费看| 欧美一区二区三区免费视频| 日韩电影一二三区| 欧美卡1卡2卡| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美夫妻性生活| 日韩激情中文字幕| 欧美一级在线免费| 麻豆91免费看| 国产无人区一区二区三区| 成人午夜免费视频| 亚洲国产高清在线观看视频| 91在线精品一区二区| 亚洲免费观看在线观看| 欧美亚男人的天堂| 日韩国产欧美在线观看| 精品日韩一区二区| 国产成a人亚洲精| 中文字幕乱码日本亚洲一区二区| av在线不卡电影| 亚洲午夜免费电影| 精品久久久久久久一区二区蜜臀| 国产精品一二二区| 亚洲欧美偷拍卡通变态| 777久久久精品| 国产激情精品久久久第一区二区| 中文字幕在线免费不卡| 欧美日韩一区二区三区不卡| 九九国产精品视频| 国产精品毛片大码女人| 欧美日韩极品在线观看一区| 蜜臀av一区二区| 中文字幕一区日韩精品欧美| 欧美日韩情趣电影| 国内不卡的二区三区中文字幕| 国产精品高潮久久久久无| 欧美日韩中文一区| 夫妻av一区二区| 亚洲成a人v欧美综合天堂| 精品少妇一区二区三区日产乱码 | 亚洲日本va午夜在线影院| 欧美视频一区二区三区| 国产美女在线观看一区| 亚洲午夜羞羞片| 国产欧美一区在线| 欧美美女一区二区| 成人免费视频网站在线观看| 日本成人在线一区| 亚洲精品视频在线观看网站| 久久伊人中文字幕| 欧美精品aⅴ在线视频| 成人少妇影院yyyy| 精品综合免费视频观看| 亚洲精品欧美专区| 中文字幕欧美国产| 26uuu久久天堂性欧美| 欧美午夜电影网| 成人国产在线观看| 九九热在线视频观看这里只有精品| 一区二区三区欧美久久| 国产精品全国免费观看高清 | 国产v日产∨综合v精品视频| 午夜av区久久| 一区二区三区四区视频精品免费 | 亚洲丰满少妇videoshd| 国产精品久久久久久久久免费丝袜 | 国产精品电影院| 久久丝袜美腿综合| 欧美一区二区视频在线观看2020| 91美女在线观看| 国产传媒一区在线| 国产在线视频不卡二| 日韩av成人高清| 亚洲mv大片欧洲mv大片精品| 亚洲视频免费在线观看| 中文字幕一区不卡| 国产精品久线观看视频| 国产精品理论在线观看| 中文字幕欧美国产| 中文字幕av免费专区久久| 国产亚洲婷婷免费| 国产欧美日韩在线观看| 亚洲精品一区二区三区影院| 日韩一区二区视频| 91精品国模一区二区三区| 欧美日韩日本视频| 欧美高清视频一二三区| 欧美日韩国产一区二区三区地区| 欧美私人免费视频| 欧美日韩国产色站一区二区三区| 色激情天天射综合网| 欧美午夜一区二区三区| 欧美日韩免费观看一区三区| 欧美午夜精品久久久久久孕妇| 欧美日韩视频在线观看一区二区三区| 在线观看视频91| 欧美日韩精品是欧美日韩精品| 欧美三级欧美一级| 欧美一区二区免费视频| 欧美成人a在线| 久久久精品欧美丰满| 国产精品三级在线观看| 综合色天天鬼久久鬼色| 亚洲在线一区二区三区| 天堂va蜜桃一区二区三区| 蜜桃久久av一区| 成人激情图片网| 日本精品一级二级| 在线成人免费视频| 久久婷婷国产综合精品青草| 成人欧美一区二区三区| 亚洲成人资源在线| 国产主播一区二区| 色香色香欲天天天影视综合网| 欧美高清视频www夜色资源网| 精品成人私密视频| **性色生活片久久毛片| 奇米精品一区二区三区四区| 成人高清视频在线| 欧美剧情电影在线观看完整版免费励志电影| 欧美一区二区三区免费| 国产精品视频你懂的| 亚洲观看高清完整版在线观看| 另类专区欧美蜜桃臀第一页| 成人午夜视频在线| 欧美一区二区播放| 日韩理论片中文av| 久久精品噜噜噜成人av农村| 91一区在线观看| 亚洲精品一区二区三区精华液| 亚洲精品成人少妇| 久久er精品视频| 欧美性色黄大片| 国产精品电影一区二区三区| 麻豆精品精品国产自在97香蕉 | 国产伦精一区二区三区| 欧美午夜片在线观看| 国产欧美va欧美不卡在线| 日韩主播视频在线| 91在线精品一区二区| 久久精品人人做人人爽人人| 午夜av电影一区| 日本伦理一区二区| 国产精品伦理在线| 国产在线播放一区三区四| 欧美伦理视频网站| 亚洲免费观看高清| 成人一级视频在线观看| 精品国产人成亚洲区| 午夜影院在线观看欧美| 99久久综合国产精品| 国产日韩视频一区二区三区| 另类小说视频一区二区| 欧美卡1卡2卡| 亚洲成人av一区二区| 在线观看视频一区| 亚洲欧洲综合另类| 99久久亚洲一区二区三区青草| 国产喷白浆一区二区三区| 国产一区二区三区视频在线播放| 欧美疯狂做受xxxx富婆| 亚洲国产日韩精品| 91福利在线导航| 亚洲最新视频在线播放| 色综合久久久网| 亚洲精品视频在线观看免费| 99天天综合性| 亚洲欧美日韩国产一区二区三区| 成人性生交大片免费看中文网站| 久久久综合网站| 国产精品一区二区x88av| 精品国产a毛片| 国产麻豆精品theporn| 久久精品亚洲一区二区三区浴池|