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

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

?? ftp.pm

?? 視頻監控網絡部分的協議ddns,的模塊的實現代碼,請大家大膽指正.
?? PM
?? 第 1 頁 / 共 3 頁
字號:
# Net::FTP.pm## Copyright (c) 1995-2004 Graham Barr <gbarr@pobox.com>. All rights reserved.# This program is free software; you can redistribute it and/or# modify it under the same terms as Perl itself.## Documentation (at end) improved 1996 by Nathan Torkington <gnat@frii.com>.package Net::FTP;require 5.001;use strict;use vars qw(@ISA $VERSION);use Carp;use Socket 1.3;use IO::Socket;use Time::Local;use Net::Cmd;use Net::Config;use Fcntl qw(O_WRONLY O_RDONLY O_APPEND O_CREAT O_TRUNC);$VERSION = '2.77';@ISA     = qw(Exporter Net::Cmd IO::Socket::INET);# Someday I will "use constant", when I am not bothered to much about# compatability with older releases of perluse vars qw($TELNET_IAC $TELNET_IP $TELNET_DM);($TELNET_IAC, $TELNET_IP, $TELNET_DM) = (255, 244, 242);BEGIN {  # make a constant so code is fast'ish  my $is_os390 = $^O eq 'os390';  *trEBCDIC = sub () {$is_os390}}sub new {  my $pkg = shift;  my ($peer, %arg);  if (@_ % 2) {    $peer = shift;    %arg  = @_;  }  else {    %arg  = @_;    $peer = delete $arg{Host};  }  my $host      = $peer;  my $fire      = undef;  my $fire_type = undef;  if (exists($arg{Firewall}) || Net::Config->requires_firewall($peer)) {         $fire = $arg{Firewall}      || $ENV{FTP_FIREWALL}      || $NetConfig{ftp_firewall}      || undef;    if (defined $fire) {      $peer = $fire;      delete $arg{Port};           $fire_type = $arg{FirewallType}        || $ENV{FTP_FIREWALL_TYPE}        || $NetConfig{firewall_type}        || undef;    }  }  my $ftp = $pkg->SUPER::new(    PeerAddr  => $peer,    PeerPort  => $arg{Port} || 'ftp(21)',    LocalAddr => $arg{'LocalAddr'},    Proto     => 'tcp',    Timeout   => defined $arg{Timeout}    ? $arg{Timeout}    : 120    )    or return undef;  ${*$ftp}{'net_ftp_host'}    = $host;                             # Remote hostname  ${*$ftp}{'net_ftp_type'}    = 'A';                               # ASCII/binary/etc mode  ${*$ftp}{'net_ftp_blksize'} = abs($arg{'BlockSize'} || 10240);  ${*$ftp}{'net_ftp_localaddr'} = $arg{'LocalAddr'};  ${*$ftp}{'net_ftp_firewall'} = $fire    if (defined $fire);  ${*$ftp}{'net_ftp_firewall_type'} = $fire_type    if (defined $fire_type);  ${*$ftp}{'net_ftp_passive'} =      int exists $arg{Passive} ? $arg{Passive}    : exists $ENV{FTP_PASSIVE} ? $ENV{FTP_PASSIVE}    : defined $fire            ? $NetConfig{ftp_ext_passive}    : $NetConfig{ftp_int_passive};    # Whew! :-)  $ftp->hash(exists $arg{Hash} ? $arg{Hash} : 0, 1024);  $ftp->autoflush(1);  $ftp->debug(exists $arg{Debug} ? $arg{Debug} : undef);  unless ($ftp->response() == CMD_OK) {    $ftp->close();    $@ = $ftp->message;    undef $ftp;  }  $ftp;}#### User interface methods##sub host {  my $me = shift;  ${*$me}{'net_ftp_host'};}sub hash {  my $ftp = shift;    # self  my ($h, $b) = @_;  unless ($h) {    delete ${*$ftp}{'net_ftp_hash'};    return [\*STDERR, 0];  }  ($h, $b) = (ref($h) ? $h : \*STDERR, $b || 1024);  select((select($h), $| = 1)[0]);  $b = 512 if $b < 512;  ${*$ftp}{'net_ftp_hash'} = [$h, $b];}sub quit {  my $ftp = shift;  $ftp->_QUIT;  $ftp->close;}sub DESTROY { }sub ascii  { shift->type('A', @_); }sub binary { shift->type('I', @_); }sub ebcdic {  carp "TYPE E is unsupported, shall default to I";  shift->type('E', @_);}sub byte {  carp "TYPE L is unsupported, shall default to I";  shift->type('L', @_);}# Allow the user to send a command directly, BE CAREFUL !!sub quot {  my $ftp = shift;  my $cmd = shift;  $ftp->command(uc $cmd, @_);  $ftp->response();}sub site {  my $ftp = shift;  $ftp->command("SITE", @_);  $ftp->response();}sub mdtm {  my $ftp  = shift;  my $file = shift;  # Server Y2K bug workaround  #  # sigh; some idiotic FTP servers use ("19%d",tm.tm_year) instead of  # ("%d",tm.tm_year+1900).  This results in an extra digit in the  # string returned. To account for this we allow an optional extra  # digit in the year. Then if the first two digits are 19 we use the  # remainder, otherwise we subtract 1900 from the whole year.  $ftp->_MDTM($file)    && $ftp->message =~ /((\d\d)(\d\d\d?))(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/    ? timegm($8, $7, $6, $5, $4 - 1, $2 eq '19' ? $3 : ($1 - 1900))    : undef;}sub size {  my $ftp  = shift;  my $file = shift;  my $io;  if ($ftp->supported("SIZE")) {    return $ftp->_SIZE($file)      ? ($ftp->message =~ /(\d+)\s*(bytes?\s*)?$/)[0]      : undef;  }  elsif ($ftp->supported("STAT")) {    my @msg;    return undef      unless $ftp->_STAT($file) && (@msg = $ftp->message) == 3;    my $line;    foreach $line (@msg) {      return (split(/\s+/, $line))[4]        if $line =~ /^[-rwxSsTt]{10}/;    }  }  else {    my @files = $ftp->dir($file);    if (@files) {      return (split(/\s+/, $1))[4]        if $files[0] =~ /^([-rwxSsTt]{10}.*)$/;    }  }  undef;}sub login {  my ($ftp, $user, $pass, $acct) = @_;  my ($ok, $ruser, $fwtype);  unless (defined $user) {    require Net::Netrc;    my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_host'});    ($user, $pass, $acct) = $rc->lpa()      if ($rc);  }  $user ||= "anonymous";  $ruser = $user;  $fwtype = ${*$ftp}{'net_ftp_firewall_type'}    || $NetConfig{'ftp_firewall_type'}    || 0;  if ($fwtype && defined ${*$ftp}{'net_ftp_firewall'}) {    if ($fwtype == 1 || $fwtype == 7) {      $user .= '@' . ${*$ftp}{'net_ftp_host'};    }    else {      require Net::Netrc;      my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'});      my ($fwuser, $fwpass, $fwacct) = $rc ? $rc->lpa() : ();      if ($fwtype == 5) {        $user = join('@', $user, $fwuser, ${*$ftp}{'net_ftp_host'});        $pass = $pass . '@' . $fwpass;      }      else {        if ($fwtype == 2) {          $user .= '@' . ${*$ftp}{'net_ftp_host'};        }        elsif ($fwtype == 6) {          $fwuser .= '@' . ${*$ftp}{'net_ftp_host'};        }        $ok = $ftp->_USER($fwuser);        return 0 unless $ok == CMD_OK || $ok == CMD_MORE;        $ok = $ftp->_PASS($fwpass || "");        return 0 unless $ok == CMD_OK || $ok == CMD_MORE;        $ok = $ftp->_ACCT($fwacct)          if defined($fwacct);        if ($fwtype == 3) {          $ok = $ftp->command("SITE", ${*$ftp}{'net_ftp_host'})->response;        }        elsif ($fwtype == 4) {          $ok = $ftp->command("OPEN", ${*$ftp}{'net_ftp_host'})->response;        }        return 0 unless $ok == CMD_OK || $ok == CMD_MORE;      }    }  }  $ok = $ftp->_USER($user);  # Some dumb firewalls don't prefix the connection messages  $ok = $ftp->response()    if ($ok == CMD_OK && $ftp->code == 220 && $user =~ /\@/);  if ($ok == CMD_MORE) {    unless (defined $pass) {      require Net::Netrc;      my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_host'}, $ruser);      ($ruser, $pass, $acct) = $rc->lpa()        if ($rc);      $pass = '-anonymous@'        if (!defined $pass && (!defined($ruser) || $ruser =~ /^anonymous/o));    }    $ok = $ftp->_PASS($pass || "");  }  $ok = $ftp->_ACCT($acct)    if (defined($acct) && ($ok == CMD_MORE || $ok == CMD_OK));  if ($fwtype == 7 && $ok == CMD_OK && defined ${*$ftp}{'net_ftp_firewall'}) {    my ($f, $auth, $resp) = _auth_id($ftp);    $ftp->authorize($auth, $resp) if defined($resp);  }  $ok == CMD_OK;}sub account {  @_ == 2 or croak 'usage: $ftp->account( ACCT )';  my $ftp  = shift;  my $acct = shift;  $ftp->_ACCT($acct) == CMD_OK;}sub _auth_id {  my ($ftp, $auth, $resp) = @_;  unless (defined $resp) {    require Net::Netrc;    $auth ||= eval { (getpwuid($>))[0] } || $ENV{NAME};    my $rc = Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'}, $auth)      || Net::Netrc->lookup(${*$ftp}{'net_ftp_firewall'});    ($auth, $resp) = $rc->lpa()      if ($rc);  }  ($ftp, $auth, $resp);}sub authorize {  @_ >= 1 || @_ <= 3 or croak 'usage: $ftp->authorize( [AUTH [, RESP]])';  my ($ftp, $auth, $resp) = &_auth_id;  my $ok = $ftp->_AUTH($auth || "");  $ok = $ftp->_RESP($resp || "")    if ($ok == CMD_MORE);  $ok == CMD_OK;}sub rename {  @_ == 3 or croak 'usage: $ftp->rename(FROM, TO)';  my ($ftp, $from, $to) = @_;  $ftp->_RNFR($from)    && $ftp->_RNTO($to);}sub type {  my $ftp    = shift;  my $type   = shift;  my $oldval = ${*$ftp}{'net_ftp_type'};  return $oldval    unless (defined $type);  return undef    unless ($ftp->_TYPE($type, @_));  ${*$ftp}{'net_ftp_type'} = join(" ", $type, @_);  $oldval;}sub alloc {  my $ftp    = shift;  my $size   = shift;  my $oldval = ${*$ftp}{'net_ftp_allo'};  return $oldval    unless (defined $size);  return undef    unless ($ftp->_ALLO($size, @_));  ${*$ftp}{'net_ftp_allo'} = join(" ", $size, @_);  $oldval;}sub abort {  my $ftp = shift;  send($ftp, pack("CCC", $TELNET_IAC, $TELNET_IP, $TELNET_IAC), MSG_OOB);  $ftp->command(pack("C", $TELNET_DM) . "ABOR");  ${*$ftp}{'net_ftp_dataconn'}->close()    if defined ${*$ftp}{'net_ftp_dataconn'};  $ftp->response();  $ftp->status == CMD_OK;}sub get {  my ($ftp, $remote, $local, $where) = @_;  my ($loc, $len, $buf, $resp, $data);  local *FD;  my $localfd = ref($local) || ref(\$local) eq "GLOB";  ($local = $remote) =~ s#^.*/##    unless (defined $local);  croak("Bad remote filename '$remote'\n")    if $remote =~ /[\r\n]/s;  ${*$ftp}{'net_ftp_rest'} = $where if defined $where;  my $rest = ${*$ftp}{'net_ftp_rest'};  delete ${*$ftp}{'net_ftp_port'};  delete ${*$ftp}{'net_ftp_pasv'};  $data = $ftp->retr($remote)    or return undef;  if ($localfd) {    $loc = $local;  }  else {    $loc = \*FD;    unless (sysopen($loc, $local, O_CREAT | O_WRONLY | ($rest ? O_APPEND: O_TRUNC))) {      carp "Cannot open Local file $local: $!\n";      $data->abort;      return undef;    }  }  if ($ftp->type eq 'I' && !binmode($loc)) {    carp "Cannot binmode Local file $local: $!\n";    $data->abort;    close($loc) unless $localfd;    return undef;  }  $buf = '';  my ($count, $hashh, $hashb, $ref) = (0);  ($hashh, $hashb) = @$ref    if ($ref = ${*$ftp}{'net_ftp_hash'});  my $blksize = ${*$ftp}{'net_ftp_blksize'};  local $\;    # Just in case  while (1) {    last unless $len = $data->read($buf, $blksize);    if (trEBCDIC && $ftp->type ne 'I') {      $buf = $ftp->toebcdic($buf);      $len = length($buf);    }    if ($hashh) {      $count += $len;      print $hashh "#" x (int($count / $hashb));      $count %= $hashb;    }    unless (print $loc $buf) {      carp "Cannot write to Local file $local: $!\n";      $data->abort;      close($loc)        unless $localfd;      return undef;    }  }  print $hashh "\n" if $hashh;  unless ($localfd) {    unless (close($loc)) {      carp "Cannot close file $local (perhaps disk space) $!\n";      return undef;    }  }  unless ($data->close())    # implied $ftp->response  {    carp "Unable to close datastream";    return undef;  }  return $local;}sub cwd {  @_ == 1 || @_ == 2 or croak 'usage: $ftp->cwd( [ DIR ] )';  my ($ftp, $dir) = @_;  $dir = "/" unless defined($dir) && $dir =~ /\S/;  $dir eq ".."    ? $ftp->_CDUP()    : $ftp->_CWD($dir);}sub cdup {  @_ == 1 or croak 'usage: $ftp->cdup()';  $_[0]->_CDUP;}sub pwd {  @_ == 1 || croak 'usage: $ftp->pwd()';  my $ftp = shift;  $ftp->_PWD();  $ftp->_extract_path;}# rmdir( $ftp, $dir, [ $recurse ] )## Removes $dir on remote host via FTP.# $ftp is handle for remote host## If $recurse is TRUE, the directory and deleted recursively.# This means all of its contents and subdirectories.## Initial version contributed by Dinkum Software#sub rmdir {  @_ == 2 || @_ == 3 or croak('usage: $ftp->rmdir( DIR [, RECURSE ] )');  # Pick off the args  my ($ftp, $dir, $recurse) = @_;  my $ok;  return $ok    if $ok = $ftp->_RMD($dir)    or !$recurse;  # Try to delete the contents  # Get a list of all the files in the directory  my @filelist = grep { !/^\.{1,2}$/ } $ftp->ls($dir);  return undef    unless @filelist;    # failed, it is probably not a directory  # Go thru and delete each file or the directory  my $file;  foreach $file (map { m,/, ? $_ : "$dir/$_" } @filelist) {    next                 # successfully deleted the file      if $ftp->delete($file);    # Failed to delete it, assume its a directory    # Recurse and ignore errors, the final rmdir() will    # fail on any errors here    return $ok      unless $ok = $ftp->rmdir($file, 1);  }  # Directory should be empty  # Try to remove the directory again  # Pass results directly to caller  # If any of the prior deletes failed, this  # rmdir() will fail because directory is not empty  return $ftp->_RMD($dir);}sub restart {  @_ == 2 || croak 'usage: $ftp->restart( BYTE_OFFSET )';

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品久久久一区麻豆最新章节| 欧美日产在线观看| 91丨porny丨国产入口| 91色婷婷久久久久合中文| 欧美三级资源在线| 久久久综合精品| 亚洲精品菠萝久久久久久久| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲欧美激情插 | 欧美一区二视频| 久久久亚洲国产美女国产盗摄 | 91成人免费在线| 日韩天堂在线观看| 香蕉av福利精品导航| 欧美aaa在线| 99久久精品99国产精品| 欧美电影免费观看完整版| 中日韩av电影| 首页国产欧美久久| 99久久伊人网影院| 91麻豆精品久久久久蜜臀| 久久蜜桃av一区精品变态类天堂 | 91黄视频在线观看| 欧美不卡一区二区| 亚洲最大的成人av| 国产福利一区二区三区视频在线 | 久久精品国产秦先生| 99久久99久久免费精品蜜臀| 欧美成人精品1314www| 亚洲一区二区三区中文字幕在线 | 国产精品黄色在线观看 | 国产女主播在线一区二区| 日韩中文字幕不卡| 色久综合一二码| 国产亚洲1区2区3区| 日韩福利视频网| 色偷偷88欧美精品久久久| 国产午夜精品福利| 另类小说综合欧美亚洲| 欧美日韩亚洲综合| 国产精品美女www爽爽爽| 麻豆传媒一区二区三区| 欧美日韩在线观看一区二区| 亚洲国产高清在线| 国产麻豆午夜三级精品| 欧美一区二区黄| 午夜日韩在线观看| 在线看国产一区| 1024成人网色www| 成人av电影在线网| 精品99999| 蜜桃视频在线观看一区| 在线成人午夜影院| 亚洲第一福利视频在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 中文字幕乱码日本亚洲一区二区| 麻豆精品新av中文字幕| 4438x亚洲最大成人网| 亚洲色图制服丝袜| 99久久精品国产精品久久| 欧美激情在线一区二区三区| 国产精品一级片| 精品处破学生在线二十三| 蜜臀av一区二区在线观看| 欧美电影在哪看比较好| 日韩国产欧美三级| 91精品国产欧美一区二区| 日日夜夜精品视频天天综合网| 欧美另类videos死尸| 亚洲成人综合网站| 欧美日韩国产免费| 成人精品免费视频| 久久久久久一二三区| 国产精品18久久久久久久久久久久| 精品国产露脸精彩对白| 国产一区二区三区综合| 久久色中文字幕| 国产高清久久久久| 中文字幕亚洲欧美在线不卡| 91麻豆精品在线观看| 一区二区三区**美女毛片| 欧美亚洲日本国产| 日本91福利区| 2021中文字幕一区亚洲| 国产精品自产自拍| 中文字幕日韩精品一区| 色综合一个色综合| 亚洲小说欧美激情另类| 欧美一区二区性放荡片| 国产一区二区电影| 中文字幕在线不卡| 欧美日韩一卡二卡| 美洲天堂一区二卡三卡四卡视频| 精品少妇一区二区三区视频免付费| 国产综合久久久久久鬼色| 国产精品久久精品日日| 欧美伊人精品成人久久综合97| 日韩不卡在线观看日韩不卡视频| 日韩欧美一级二级| 国产jizzjizz一区二区| 亚洲精品大片www| 欧美一区二区三区四区视频 | 欧美国产一区视频在线观看| 91小宝寻花一区二区三区| 午夜精品久久久久影视| 精品国产91乱码一区二区三区 | 亚洲国产精品v| 欧美日韩午夜在线| 狠狠色伊人亚洲综合成人| 国产精品久久看| 4438成人网| 成人网在线播放| 亚洲第四色夜色| 国产色婷婷亚洲99精品小说| 色视频成人在线观看免| 久久国产婷婷国产香蕉| 中文字幕在线观看不卡| 7777精品伊人久久久大香线蕉完整版| 九色porny丨国产精品| 日韩理论片网站| 欧美不卡一区二区| 91久久精品午夜一区二区| 精品在线免费观看| 樱桃国产成人精品视频| 亚洲国产综合在线| 精品国产一区二区三区不卡| av色综合久久天堂av综合| 青青草97国产精品免费观看 | 国产99精品在线观看| 午夜精品久久久久久久| 久久久久亚洲综合| 欧美高清视频一二三区| 国产sm精品调教视频网站| 三级一区在线视频先锋| 国产精品第13页| 日韩精品一区在线观看| 欧美最新大片在线看| 成人亚洲一区二区一| 久久福利视频一区二区| 亚洲香肠在线观看| 国产精品国模大尺度视频| 欧美成人video| 欧美日韩在线亚洲一区蜜芽| 成人avav影音| 国产成人在线视频免费播放| 日本视频免费一区| 亚洲图片欧美激情| 久久精品人人做人人综合| 欧美精品在线观看播放| 色综合久久天天| 国产成人午夜片在线观看高清观看| 免费成人在线视频观看| 午夜日韩在线电影| 一区二区三区在线免费视频| 国产精品久久午夜夜伦鲁鲁| 久久久久久亚洲综合影院红桃| 欧美一卡二卡在线| 欧美日韩不卡在线| 91精品福利在线| 99久久久国产精品| 成人性生交大片免费看中文 | 久久久久久久久久看片| 日韩欧美亚洲另类制服综合在线| 欧美亚洲国产一区二区三区| 99re热这里只有精品视频| 成人性生交大片免费看视频在线 | 久久久久97国产精华液好用吗| 在线综合视频播放| 69堂国产成人免费视频| 欧美在线视频全部完| 色婷婷精品久久二区二区蜜臀av| av在线播放一区二区三区| 国产成人精品亚洲777人妖| 国产一区二区三区日韩| 久久国产精品第一页| 久久成人羞羞网站| 久草中文综合在线| 国产一区二区三区四区五区美女| 精品一区二区三区视频在线观看 | 久久精品一区二区三区av| 精品不卡在线视频| 国产亚洲一区字幕| 国产亚洲综合在线| 欧美激情一区在线| 国产精品美女久久久久久久久久久| 国产三级一区二区| 国产精品私人影院| 成人免费在线播放视频| 亚洲欧美另类久久久精品| 一区二区三区久久| 亚洲不卡一区二区三区| 日产欧产美韩系列久久99| 免费成人性网站| 国产永久精品大片wwwapp| 懂色av一区二区三区免费看| 不卡视频在线观看| 欧美艳星brazzers| 91精品国产综合久久国产大片| 日韩精品一区二区三区四区视频 | 风流少妇一区二区|