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

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

?? psa-chapter06.txt

?? perl語言的經典文章
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
Example code from Perl for System Administration by David N. Blank-Edelman
O'Reilly and Associates, 1st Edition, ISBN 1-56592-609-9

Chapter Six
===========

#*
#* querying a finger server using Net::Telnet
#*
use Net::Telnet;

($username,$host) = split(/\@/,$ARGV[0]);
$host = $host ? $host : 'localhost';

# create a new connection
$cn = new Net::Telnet(Host => $host,
                      Port => 'finger');

# send the username down this connection
unless ($cn->print("$username")){ # could be "/W $username"
    $cn->close;              
    die "Unable to send finger string: ".$cn->errmg."\n";
}

# grab all of the data we receive, stopping when the 
# connection is dropped
while (defined $ret = $cn->get) {
    $data .= $ret;
}

# close the connection
$cn->close;                  

# display the data we collected
print $data;
-------
#*
#* querying a daytime server using Net::Telnet
#*

use Net::Telnet;

$host = $ARGV[0] ? $ARGV[0] : 'localhost';

$cn = new Net::Telnet(Host => $host, 
                       Port => 'daytime');

while (defined $ret = $cn->get) {
    $data .= $ret;
}
$cn->close;                  

print $data;
-------
#*
#* querying a finger server using Net::Finger
#*

use Net::Finger;

# finger() takes a user@host string and returns the data received
print finger($ARGV[0]); 
-------
#*
#* querying a finger server by calling the finger executable
#*

($username,$host) = split('@',$ARGV[0]);
$host = $host ? $host : 'localhost';

# location of finger executable, Mac OS users can't use this method
$fingerex = ($^O eq "MSWin32") ? $ENV{'SYSTEMROOT'}."\\System32\\finger" :
  		  "/usr/ucb/finger";  # (could also be /usr/bin/finger)

print `$fingerex ${username}\@${host}`;
-------
#*
#* querying the InterNIC WHOIS server
#*

use Net::Whois;

# query server, returning an object with results
my $w = new Net::Whois::Domain $ARGV[0] or 
   die "Can't connect to Whois server\n";
die "No domain information found for $ARGV[0]\n" unless ($w->ok);

# print out parts of that object
print "Domain: ", $w->domain, "\n";
print "Name: ", $w->name, "\n";
print "Tag: ", $w->tag, "\n";
print "Address:\n", map { "    $_\n" } $w->address;
print "Country: ", $w->country, "\n";
print "Record created: ".$w->record_created."\n";
print "Record updated: ".$w->record_updated."\n";

# print out name servers ($w->servers returns a list of lists)
print "Name Servers:\n", map { "    $$_[0] ($$_[1])\n" } @{$w->servers};

# print out contact list ($w->contacts returns a hash of lists)
my($c,$t);
if ($c = $w->contacts) {
    print "Contacts:\n";
    for $t (sort keys %$c) {
        print "    $t:\n";
        print map { "\t$_\n" } @{$$c{$t}};
    }
}
-------
#*
#* two ways to set up the initial connection to an LDAP server
#*

use Mozilla::LDAP::Conn;
# use empty $binddn and $passwd for anonymous bind
$c = new Mozilla::LDAP::Conn($server, $port, $binddn, $passwd); 
die "Unable to connect to $server" unless $c;
# ...
$c->close();

### OR ####

use Net::LDAP;
$c = Net::LDAP->new($server, port => $port) or 
    die "Unable to connect to $server: $@\n";
# use no parameters to bind() for anonymous bind
$c->bind($binddn, password => $passwd) or die "Unable to bind: $@\n"; 
# ...
$c->unbind();
-------
#*
#* two ways to search in LDAP
#*

use Mozilla::LDAP::Conn;
# <bind step here>
$entry = $c->search($basedn, $scope, $filter);
die "Bad search: ". $c->getErrorString()."\n" if $c->getErrorCode();

### OR ####

use Net::LDAP;
# <bind step here>
$searchobj = $c->search(base => $basedn, scope => $scope,filter => $filter); 
die "Bad search, errorcode #".$searchobj->code() if $searchobj->code();
-------
#*
#* two examples that take an LDAP server and send a query to them
#* example usage: 
#*      ldapsrch ldap.bigfoot.com '(sn=Pooh)'
#*

use Mozilla::LDAP::Conn;

$server = $ARGV[0];
$port   = getservbyname("ldap","tcp") || "389";
$basedn = "c=US";
$scope  = "sub";  

$c = new Mozilla::LDAP::Conn($server, $port, "", ""); # anonymous bind
die "Unable to bind to $server\n" unless $c; 

$entry = $c->search($basedn, $scope, $ARGV[1]);
die "Error in search: ". $c->getErrorString()."\n" if $c->getErrorCode();

# process the return values from search()
while ($entry) {
    $entry->printLDIF();
    $entry = $c->nextEntry();
}
$c->close();

### OR ####

use Net::LDAP;
use Net::LDAP::LDIF;

$server = $ARGV[0];
$port   = getservbyname("ldap","tcp") || "389";
$basedn = "c=US";
$scope  = "sub";

$c = new Net::LDAP($server, port=>$port) or 
    die "Unable to connect to $server: $@\n";
$c->bind() or die "Unable to bind: $@\n"; # anonymous bind

$searchobj = $c->search(base => $basedn, scope => $scope, 
                        filter => $ARGV[1]);
die "Bad search, errorcode #".$searchobj->code() if $searchobj->code();

# process the return values from search()
if ($searchobj){
    $ldif = new Net::LDAP::LDIF("-");
    $ldif->write($searchobj->entries());
    $ldif->done();
}
-------
#*
#*  writing LDIF using Mozilla::LDAP
#*

use Mozilla::LDAP::Conn;
use Mozilla::LDAP::LDIF;

# <perform bind & search>

open(LDIF,">$LDIFfile") or die "Unable to write to $LDIFfile:$!\n";
# create new LDIF object and pass in destination filehandle
$ldif = new Mozilla::LDAP::LDIF(\*LDIF); 

while ($entry) {
    $ldif->writeOneEntry($entry);
    $entry = $c->nextEntry();
}

$c->close();
close(LDIF);
-------
#*
#* writing LDIF using Net::LDAP
#*

use Net::LDAP;
use Net::LDAP::LDIF;

$server = $ARGV[0];
$port   = getservbyname("ldap","tcp") || "389";
$basedn = "c=US";
$scope  = "sub";

$c = new Net::LDAP($server, port=>$port) or 
    die "Unable to connect to $server: $@\n";
$c->bind() or die "Unable to bind: $@\n"; # anonymous bind

$searchobj = $c->search(base => $basedn, scope => $scope, 
                        filter => $ARGV[1]);
die "Bad search, errorcode #".$searchobj->code() if $searchobj->code();

# process the return values from search()
if ($searchobj){
    $ldif = new Net::LDAP::LDIF($filename);
    $ldif->write($searchobj->entries());
    $ldif->done();
}
-------
#*
#* two ways to read LDIF and add the data to an LDAP server
#*

use Mozilla::LDAP::Conn;
use Mozilla::LDAP::LDIF;

$server   = $ARGV[0];
$LDIFfile = $ARGV[1];
$port     = getservbyname("ldap","tcp") || "389";
$rootdn   = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$pw       = "secret";

# read in an LDIF file specified as the second argument 
# on the command line 
open(LDIF,"$LDIFfile") or die "Unable to open $LDIFfile:$!\n";
$ldif = new Mozilla::LDAP::LDIF(\*LDIF);

# parse all of the entries, store in @entries
@entries = $ldif->readEntries(); 
close(LDIF);

# non-anonymous bind
$c = new Mozilla::LDAP::Conn($server,$port,$rootdn,$pw); 
die "Unable to bind to $server\n" unless $c;

# iterate through our parsed entry list, attempting to add one at a time
for (@entries){
    $c->add($_); # add this entry to the directory
    warn "Error in add for ". $_->getDN().": ".$c->getErrorString()."\n"
      if $c->getErrorCode();
}
$c->close();

### OR ####

use Net::LDAP;
use Net::LDAP::LDIF;

$server   = $ARGV[0];
$LDIFfile = $ARGV[1];
$port     = getservbyname("ldap","tcp") or "389";
$rootdn   = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$pw       = "secret";

# read in an LDIF file specified as the second argument on the command line
# last parameter is "r" for open for read, "w" for write
# Note: these lines could be combined into:
#    @entries = new Net::LDAP::LDIF($LDIFfile,"r")->read;
$ldif = new Net::LDAP::LDIF($LDIFfile,"r"); 
@entries = $ldif->read();

$c = new Net::LDAP($server, port => $port) or 
    die "Unable to connect to $server: $@\n";
$c->bind(dn => $rootdn, password => $pw) or die "Error in bind: $@\n";

for (@entries){
    $res = $c->add($_);
    warn "Error in add for ". $_->dn().": error code ".$res->code."\n"
      if $res->code();
}

$c->unbind();
-------
#*
#* adding an entry to a server using standard LDAP operations in Mozilla::LDAP
#*

use Mozilla::LDAP::Conn;

$server   = $ARGV[0];
$port     = getservbyname("ldap","tcp") || "389";
$suffix   = "ou=People, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$rootdn   = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$pw       = "secret";

# non-anonymous bind 
$c = new Mozilla::LDAP::Conn($server, $port, $rootdn, $pw); 
die "Unable to bind to $server\n" unless $c;

$e = new Mozilla::LDAP::Entry;
# DN is uid plus a suffix detailing where to put this 
# in the directory tree
$e->setDN("uid=$ARGV[1],$suffix"); 
$e->addValue('uid', $ARGV[1]);
$e->addValue('cn', $ARGV[2]);
$c->add($e);
die "Error in add: ". $c->getErrorString()."\n" if $c->getErrorCode();
-------
#*
#* example snippet for adding an entry to a server using Net::LDAP
#*

use Net::LDAP;
$res = $c->add(
     dn   => 'uid=jay, ou=systems, ou=people, dc=ccs, dc=hogwarts, dc=edu',
     attr => [ 'cn'   => 'Jay Sekora',
	       'sn    => 'Sekora',
               'mail' => 'jayguy@ccs.hogwarts.edu',
               'title'=> ['Sysadmin','Part-time Lecturer'],
               'uid'  => 'jayguy',
             ]
             );
die "unable to add, errorcode #".$res->code() if $res->code();
-------
#*
#* two ways to delete entries
#*

use Mozilla::LDAP::Conn;
# <bind step here>
# if you have an entry in hand, you can use 
# $c->delete($entry->getDN()) instead
$c->delete($dn) or 
    die "unable to delete entry: ". $c->getErrorString()."\n";

### OR ###

use Net::LDAP;
# <bind step here>
$res = $c->delete($dn);
die "unable to delete, errorcode #".$res->code() if $res->code();
-------
#*
#* three ways to rename entries in LDAP
#*

use Mozilla::LDAP::Conn;
# <bind step here>
$c->modifyRDN($newRDN, $oldDN, $delold) or
    die "unable to rename entry:". $c->getErrorString()."\n";

### OR ###

use Net::LDAP;
# <bind step here>
$res = $c->moddn($oldDN, 
                 newrdn       => $newRDN, 
                 deleteoldrdn => 1);
die "unable to rename, errorcode #".$res->code() if $res->code();

### OR ###

# using enhanced version of moddn()
use Net::LDAP;
# <bind step here>
$result = $c->moddn($oldDN, 
                    newrdn       => $newRDN,
                    deleteoldrdn => 1, 
                    newsuperior  => $parentDN);
die "unable to rename, errorcode #".$res->code() if $res->code();
-------
#*
#* two ways to replace location attributes for all Boston personnel
#*

use Mozilla::LDAP::Conn;

$server = $ARGV[0];
$port   = getservbyname("ldap","tcp") || "389";
$basedn = "dc=ccs,dc=hogwarts,dc=edu";
$scope  = "sub";
$rootdn = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$pw     = "secret";

# non-anonymous bind 
$c = new Mozilla::LDAP::Conn($server, $port, $rootdn, $pw); 
die "Unable to bind to $server\n" unless $c;

# notice that we ask for the least amount of info 
# possible for a speedy search
$entry = $c->search($basedn, $scope, "(l=Boston)", 1, '');
die "Error in search:". $c->getErrorString()."\n" if $c->getErrorCode();

if ($entry){
    while($entry){
        $entry->removeValue("l","Boston");
        $entry->addValue("l","Indiana");
        $c->update($entry);
        die "Error in update:" . $c->getErrorString() . "\n" 
          if $c->getErrorCode();
        $entry = $c->nextEntry();
    };
}
$c->close();

### OR ###

use Net::LDAP;

$server   = $ARGV[0];
$port     = getservbyname("ldap","tcp") || "389";
$basedn   = "dc=ccs,dc=hogwarts,dc=edu";
$scope    = "sub";
$rootdn   = "cn=Manager, ou=Systems, dc=ccs, dc=hogwarts, dc=edu";
$pw       = "secret";

$c = new Net::LDAP($server,port => $port) or
  die "Unable to init for $server: $@\n";
$c->bind(dn => $rootdn, password => $pw) or die "Error in bind: $@\n";

$searchobj = $c->search(base  => $basedn, filter => "(l=Boston)",
                        scope => $scope,  attrs  => [''], 
                        typesonly => 1);
die "Error in search: ".$searchobj->error()."\n" if ($searchobj->code());

if ($searchobj){
    @entries = $searchobj->entries;
    for (@entries){
        $res=$c->modify($_->dn(), # dn() yields the DN of that entry
                        delete => {"l" => "Boston"},
                        add    => {"l" => "Indiana"});
        die "unable to modify, errorcode #".$res->code() if $res->code();
    }
}

$c->unbind();
-------
#*
#* generate an LDIF file from our machine database
#*

$datafile = "database";
$recordsep = "-=-\n";
$suffix   = "ou=data, ou=systems, dc=ccs, dc=hogwarts, dc=edu";
$objectclass = <<EOC;
objectclass: top
objectclass: machine
EOC

open(DATA,$datafile) or die "unable to open $datafile:$!\n";

# Perl modules break with this, even if it is in the spec 
# print "version: 1\n"; # 

while (<DATA>) {
    # print the header for each entry
    if (/name:\s*(.*)/){ 
        print "dn: cn=$1, $suffix\n";
        print $objectclass;
        print "cn: $1\n";
        next;
    }
    # handle the multi-valued aliases attribute
    if (s/^aliases:\s*//){
        @aliases = split;
        foreach $name (@aliases){
            print "aliases: $name\n";
        }
        next;
    }
    # handle the end of record separator
    if ($_ eq $recordsep){
        print "\n";
        next;
    }
    # otherwise, just print the attribute as we found it
    print;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品专区在线影院重磅| 亚洲最新在线观看| 亚洲一区二区在线观看视频 | 国产农村妇女精品| 丝袜美腿高跟呻吟高潮一区| 成人精品视频一区二区三区尤物| 欧美色视频一区| 国产精品美女一区二区| 91视频www| 亚洲精品在线观看网站| 亚洲午夜久久久久中文字幕久| 国产激情视频一区二区在线观看 | 亚洲天堂成人在线观看| 久久激情综合网| 欧美视频你懂的| 亚洲人成精品久久久久久| 国产成人综合在线播放| 日韩欧美一级二级| 性做久久久久久久免费看| 99久精品国产| 国产精品污网站| 风间由美一区二区av101| 精品sm捆绑视频| 男人的天堂亚洲一区| 欧美日韩国产中文| 亚洲最新视频在线观看| 色综合久久久久综合体| 亚洲欧美一区二区在线观看| 国产美女av一区二区三区| 欧美一区二区在线观看| 日本 国产 欧美色综合| 69p69国产精品| 美女任你摸久久 | 麻豆精品久久久| 欧美一区二区视频在线观看2022| 亚洲午夜免费电影| 欧美人妇做爰xxxⅹ性高电影| 亚洲国产精品一区二区尤物区| 色综合久久久久综合| 亚洲欧美日韩成人高清在线一区| www.亚洲在线| 一区二区中文视频| 欧洲视频一区二区| 亚洲国产aⅴ成人精品无吗| 欧美视频在线一区| 日本欧美在线观看| 久久久不卡网国产精品一区| 国产久卡久卡久卡久卡视频精品| 久久久久九九视频| 91美女片黄在线观看91美女| 一区二区三区成人| 欧美老年两性高潮| 精品一区二区三区免费观看| 久久久不卡网国产精品一区| 99re这里都是精品| 婷婷久久综合九色综合绿巨人 | 国产福利91精品一区二区三区| 亚洲国产精品精华液ab| 99国产精品国产精品久久| 亚洲成人福利片| 精品三级av在线| 成人动漫在线一区| 午夜精品在线看| 久久久午夜电影| 在线看日本不卡| 久久精品国产一区二区三区免费看| 亚洲精品一区在线观看| 99国产精品国产精品毛片| 午夜不卡av免费| 中文字幕高清一区| 6080午夜不卡| 99久久国产综合精品女不卡| 午夜在线电影亚洲一区| 日本一区二区电影| 欧美性感一区二区三区| 国产精品亚洲午夜一区二区三区 | 日韩高清在线观看| 国产精品视频第一区| 欧美日韩精品综合在线| 成人精品在线视频观看| 蜜桃一区二区三区在线观看| 亚洲欧美综合色| 日韩你懂的电影在线观看| 色婷婷精品久久二区二区蜜臀av | 国产精品一区久久久久| 亚洲国产成人精品视频| 亚洲国产成人午夜在线一区| 91精品一区二区三区在线观看| 成人黄色av网站在线| 韩日av一区二区| 日韩国产精品久久| 一区二区三国产精华液| 欧美激情在线看| 久久综合资源网| 91精品国产综合久久久蜜臀粉嫩 | 国产三级精品视频| 日韩一级精品视频在线观看| 在线视频一区二区免费| 成人av免费在线| 国产一区二区不卡在线| 美女被吸乳得到大胸91| 婷婷丁香激情综合| 亚洲午夜精品17c| 亚洲一区二区影院| 亚洲在线观看免费| 亚洲青青青在线视频| 国产精品久久久久久久久搜平片| 欧美成人vr18sexvr| 欧美成人精品福利| 精品欧美一区二区三区精品久久| 欧美日韩另类一区| 欧美日韩久久不卡| 欧美喷潮久久久xxxxx| 欧美色爱综合网| 欧美精品自拍偷拍动漫精品| 在线观看欧美黄色| 欧美影片第一页| 欧美日韩综合色| 欧美绝品在线观看成人午夜影视| 在线精品观看国产| 欧美亚洲综合一区| 欧美日韩三级一区二区| 欧美精品乱码久久久久久按摩| 欧美亚洲综合一区| 欧美日韩一区二区在线观看 | 国产成人精品网址| 国产aⅴ精品一区二区三区色成熟| 韩国成人在线视频| 成人在线一区二区三区| 成人国产精品免费观看视频| 99re亚洲国产精品| 欧美日韩一区 二区 三区 久久精品| 在线观看日韩av先锋影音电影院| 欧美色图片你懂的| 日韩女优制服丝袜电影| 久久久亚洲精品一区二区三区| 国产蜜臀97一区二区三区 | 天天亚洲美女在线视频| 免费人成在线不卡| 国产精华液一区二区三区| av一区二区三区| 欧美在线小视频| 欧美va日韩va| 亚洲色欲色欲www| 三级欧美在线一区| 国产精品综合一区二区| 一本久久精品一区二区| 欧美日韩国产片| 国产亚洲综合av| 一区二区在线观看免费视频播放| 首页亚洲欧美制服丝腿| 国产在线不卡视频| 在线免费精品视频| 精品国产凹凸成av人导航| 最新中文字幕一区二区三区| 亚洲va韩国va欧美va精品| 国产一区二三区好的| 一本久久精品一区二区| 日韩欧美激情在线| 亚洲免费看黄网站| 精品一二线国产| 欧洲另类一二三四区| 欧美成人精品福利| 亚洲综合清纯丝袜自拍| 国产一区二区三区美女| 欧美影视一区二区三区| 中文字幕二三区不卡| 麻豆久久久久久| 色一情一乱一乱一91av| 久久久噜噜噜久噜久久综合| 亚洲一区成人在线| 成人黄色片在线观看| 精品日韩一区二区| 日韩中文欧美在线| 日本高清免费不卡视频| 国产喷白浆一区二区三区| 另类调教123区| 欧美喷潮久久久xxxxx| 中文字幕中文在线不卡住| 国产麻豆精品在线| 日韩一级完整毛片| 亚洲成av人片在线观看无码| 91视频国产观看| 国产精品久久久久久久久免费桃花 | 亚洲一级二级三级| 成人高清av在线| 久久久久久电影| 久久精品国产99| 欧美一区二区美女| 亚洲va韩国va欧美va| 色婷婷亚洲综合| 亚洲美女视频在线| 99re6这里只有精品视频在线观看| 久久免费美女视频| 极品少妇一区二区三区精品视频 | 日韩精品久久理论片| 欧美日韩成人综合| 亚洲国产一区二区视频| 色狠狠色狠狠综合| 亚洲综合一区二区三区|