⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbi::proxyserver.3

📁 视频监控网络部分的协议ddns,的模块的实现代码,请大家大胆指正.
💻 3
📖 第 1 页 / 共 2 页
字号:
.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05).\".\" Standard preamble:.\" ========================================================================.de Sh \" Subsection heading.br.if t .Sp.ne 5.PP\fB\\$1\fR.PP...de Sp \" Vertical space (when we can't use .PP).if t .sp .5v.if n .sp...de Vb \" Begin verbatim text.ft CW.nf.ne \\$1...de Ve \" End verbatim text.ft R.fi...\" Set up some character translations and predefined strings.  \*(-- will.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left.\" double quote, and \*(R" will give a right double quote.  \*(C+ will.\" give a nicer C++.  Capital omega is used to do unbreakable dashes and.\" therefore won't be available.  \*(C` and \*(C' expand to `' in nroff,.\" nothing in troff, for use with C<>..tr \(*W-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'.ie n \{\.    ds -- \(*W-.    ds PI pi.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch.    ds L" "".    ds R" "".    ds C` "".    ds C' ""'br\}.el\{\.    ds -- \|\(em\|.    ds PI \(*p.    ds L" ``.    ds R" '''br\}.\".\" Escape single quotes in literal strings from groff's Unicode transform..ie \n(.g .ds Aq \(aq.el       .ds Aq '.\".\" If the F register is turned on, we'll generate index entries on stderr for.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index.\" entries marked with X<> in POD.  Of course, you'll have to process the.\" output yourself in some meaningful fashion..ie \nF \{\.    de IX.    tm Index:\\$1\t\\n%\t"\\$2"...    nr % 0.    rr F.\}.el \{\.    de IX...\}.\".\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2)..\" Fear.  Run.  Save yourself.  No user-serviceable parts..    \" fudge factors for nroff and troff.if n \{\.    ds #H 0.    ds #V .8m.    ds #F .3m.    ds #[ \f1.    ds #] \fP.\}.if t \{\.    ds #H ((1u-(\\\\n(.fu%2u))*.13m).    ds #V .6m.    ds #F 0.    ds #[ \&.    ds #] \&.\}.    \" simple accents for nroff and troff.if n \{\.    ds ' \&.    ds ` \&.    ds ^ \&.    ds , \&.    ds ~ ~.    ds /.\}.if t \{\.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u".    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'.\}.    \" troff and (daisy-wheel) nroff accents.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'.ds 8 \h'\*(#H'\(*b\h'-\*(#H'.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#].ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#].ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#].ds ae a\h'-(\w'a'u*4/10)'e.ds Ae A\h'-(\w'A'u*4/10)'E.    \" corrections for vroff.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'.    \" for low resolution devices (crt and lpr).if \n(.H>23 .if \n(.V>19 \\{\.    ds : e.    ds 8 ss.    ds o a.    ds d- d\h'-1'\(ga.    ds D- D\h'-1'\(hy.    ds th \o'bp'.    ds Th \o'LP'.    ds ae ae.    ds Ae AE.\}.rm #[ #] #H #V #F C.\" ========================================================================.\".IX Title "DBI::ProxyServer 3".TH DBI::ProxyServer 3 "2006-09-26" "perl v5.10.0" "User Contributed Perl Documentation".\" For nroff, turn off justification.  Always turn off hyphenation; it makes.\" way too many mistakes in technical documents..if n .ad l.nh.SH "NAME"DBI::ProxyServer \- a server for the DBD::Proxy driver.SH "SYNOPSIS".IX Header "SYNOPSIS".Vb 2\&    use DBI::ProxyServer;\&    DBI::ProxyServer::main(@ARGV);.Ve.SH "DESCRIPTION".IX Header "DESCRIPTION"DBI::Proxy Server is a module for implementing a proxy for the \s-1DBI\s0 proxydriver, DBD::Proxy. It allows access to databases over the network if the\&\s-1DBMS\s0 does not offer networked operations. But the proxy server might beusefull for you, even if you have a \s-1DBMS\s0 with integrated networkfunctionality: It can be used as a \s-1DBI\s0 proxy in a firewalled environment..PPDBI::ProxyServer runs as a daemon on the machine with the \s-1DBMS\s0 or on thefirewall. The client connects to the agent using the \s-1DBI\s0 driver DBD::Proxy,thus in the exactly same way than using DBD::mysql, DBD::mSQL or any other\&\s-1DBI\s0 driver..PPThe agent is implemented as a RPC::PlServer application. Thus you haveaccess to all the possibilities of this module, in particular encryptionand a similar configuration file. DBI::ProxyServer adds the possibility ofquery restrictions: You can define a set of queries that a client mayexecute and restrict access to those. (Requires a \s-1DBI\s0 driver that supportsparameter binding.) See \*(L"\s-1CONFIGURATION\s0 \s-1FILE\s0\*(R"..PPThe provided driver script, dbiproxy, may either be used as it is orused as the basis for a local version modified to meet your needs..SH "OPTIONS".IX Header "OPTIONS"When calling the \fIDBI::ProxyServer::main()\fR function, you supply anarray of options. These options are parsed by the Getopt::Long module.The ProxyServer inherits all of RPC::PlServer's and hence Net::Daemon'soptions and option handling, in particular the ability to readoptions from either the command line or a config file. SeeRPC::PlServer. See Net::Daemon. Available options include.IP "\fIchroot\fR (\fB\-\-chroot=dir\fR)" 4.IX Item "chroot (--chroot=dir)"(\s-1UNIX\s0 only)  After doing a \fIbind()\fR, change root directory to the givendirectory by doing a \fIchroot()\fR. This is usefull for security, but itrestricts the environment a lot. For example, you need to load \s-1DBI\s0drivers in the config file or you have to create hard links to Unixsockets, if your drivers are using them. For example, with MySQL, aconfig file might contain the following lines:.Sp.Vb 9\&    my $rootdir = \*(Aq/var/dbiproxy\*(Aq;\&    my $unixsockdir = \*(Aq/tmp\*(Aq;\&    my $unixsockfile = \*(Aqmysql.sock\*(Aq;\&    foreach $dir ($rootdir, "$rootdir$unixsockdir") {\&        mkdir 0755, $dir;\&    }\&    link("$unixsockdir/$unixsockfile",\&         "$rootdir$unixsockdir/$unixsockfile");\&    require DBD::mysql;\&\&    {\&        \*(Aqchroot\*(Aq => $rootdir,\&        ...\&    }.Ve.SpIf you don't know \fIchroot()\fR, think of an \s-1FTP\s0 server where you can see acertain directory tree only after logging in. See also the \-\-group and\&\-\-user options..IP "\fIclients\fR" 4.IX Item "clients"An array ref with a list of clients. Clients are hash refs, the attributes\&\fIaccept\fR (0 for denying access and 1 for permitting) and \fImask\fR, a Perlregular expression for the clients \s-1IP\s0 number or its host name..IP "\fIconfigfile\fR (\fB\-\-configfile=file\fR)" 4.IX Item "configfile (--configfile=file)"Config files are assumed to return a single hash ref that overrides thearguments of the new method. However, command line arguments in turn takeprecedence over the config file. See the \*(L"\s-1CONFIGURATION\s0 \s-1FILE\s0\*(R" sectionbelow for details on the config file..IP "\fIdebug\fR (\fB\-\-debug\fR)" 4.IX Item "debug (--debug)"Turn debugging mode on. Mainly this asserts that logging messages oflevel \*(L"debug\*(R" are created..IP "\fIfacility\fR (\fB\-\-facility=mode\fR)" 4.IX Item "facility (--facility=mode)"(\s-1UNIX\s0 only) Facility to use for Sys::Syslog. The default is\&\fBdaemon\fR..IP "\fIgroup\fR (\fB\-\-group=gid\fR)" 4.IX Item "group (--group=gid)"After doing a \fIbind()\fR, change the real and effective \s-1GID\s0 to the given.This is usefull, if you want your server to bind to a privileged port(<1024), but don't want the server to execute as root. See alsothe \-\-user option..Sp\&\s-1GID\s0's can be passed as group names or numeric values..IP "\fIlocaladdr\fR (\fB\-\-localaddr=ip\fR)" 4.IX Item "localaddr (--localaddr=ip)"By default a daemon is listening to any \s-1IP\s0 number that a machinehas. This attribute allows to restrict the server to the given\&\s-1IP\s0 number..IP "\fIlocalport\fR (\fB\-\-localport=port\fR)" 4.IX Item "localport (--localport=port)"This attribute sets the port on which the daemon is listening. Itmust be given somehow, as there's no default..IP "\fIlogfile\fR (\fB\-\-logfile=file\fR)" 4.IX Item "logfile (--logfile=file)"Be default logging messages will be written to the syslog (Unix) orto the event log (Windows \s-1NT\s0). On other operating systems you need tospecify a log file. The special value \*(L"\s-1STDERR\s0\*(R" forces logging tostderr. See Net::Daemon::Log for details..IP "\fImode\fR (\fB\-\-mode=modename\fR)" 4.IX Item "mode (--mode=modename)"The server can run in three different modes, depending on the environment..SpIf you are running Perl 5.005 and did compile it for threads, then theserver will create a new thread for each connection. The thread willexecute the server's \fIRun()\fR method and then terminate. This mode is thedefault, you can force it with \*(L"\-\-mode=threads\*(R"..SpIf threads are not available, but you have a working \fIfork()\fR, then theserver will behave similar by creating a new process for each connection.This mode will be used automatically in the absence of threads or ifyou use the \*(L"\-\-mode=fork\*(R" option..SpFinally there's a single-connection mode: If the server has accepted aconnection, he will enter the \fIRun()\fR method. No other connections areaccepted until the \fIRun()\fR method returns (if the client disconnects).This operation mode is usefull if you have neither threads nor \fIfork()\fR,for example on the Macintosh. For debugging purposes you can force thismode with \*(L"\-\-mode=single\*(R"..IP "\fIpidfile\fR (\fB\-\-pidfile=file\fR)" 4.IX Item "pidfile (--pidfile=file)"(\s-1UNIX\s0 only) If this option is present, a \s-1PID\s0 file will be created at thegiven location. Default is to not create a pidfile..IP "\fIuser\fR (\fB\-\-user=uid\fR)" 4.IX Item "user (--user=uid)"After doing a \fIbind()\fR, change the real and effective \s-1UID\s0 to the given.This is usefull, if you want your server to bind to a privileged port(<1024), but don't want the server to execute as root. See alsothe \-\-group and the \-\-chroot options..Sp\&\s-1UID\s0's can be passed as group names or numeric values..IP "\fIversion\fR (\fB\-\-version\fR)" 4.IX Item "version (--version)"Supresses startup of the server; instead the version string willbe printed and the program exits immediately..SH "CONFIGURATION FILE".IX Header "CONFIGURATION FILE"The configuration file is just that of \fIRPC::PlServer\fR or \fINet::Daemon\fRwith some additional attributes in the client list..PPThe config file is a Perl script. At the top of the file you may includearbitraty Perl source, for example load drivers at the start (usefullto enhance performance), prepare a chroot environment and so on..PPThe important thing is that you finally return a hash ref of optionname/value pairs. The possible options are listed above..PPAll possibilities of Net::Daemon and RPC::PlServer apply, in particular.IP "Host and/or User dependent access control" 4.IX Item "Host and/or User dependent access control".PD 0.IP "Host and/or User dependent encryption" 4.IX Item "Host and/or User dependent encryption".IP "Changing \s-1UID\s0 and/or \s-1GID\s0 after binding to the port" 4.IX Item "Changing UID and/or GID after binding to the port".IP "Running in a \fIchroot()\fR environment" 4.IX Item "Running in a chroot() environment".PD.PPAdditionally the server offers you query restrictions. Suggest thefollowing client list:.PP.Vb 10\&    \*(Aqclients\*(Aq => [\&        { \*(Aqmask\*(Aq => \*(Aq^admin\e.company\e.com$\*(Aq,\&          \*(Aqaccept\*(Aq => 1,\&          \*(Aqusers\*(Aq => [ \*(Aqroot\*(Aq, \*(Aqwwwrun\*(Aq ],\&        },\&        {\&          \*(Aqmask\*(Aq => \*(Aq^admin\e.company\e.com$\*(Aq,\&          \*(Aqaccept\*(Aq => 1,\&          \*(Aqusers\*(Aq => [ \*(Aqroot\*(Aq, \*(Aqwwwrun\*(Aq ],

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -