📄 internet services.mht
字号:
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdad00>@group</FONT> =3D $server->group<FONT =
color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>"comp.lang.perl.misc"</FONT><FONT =
color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't select group =
comp.lang.perl.misc\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#cdad00>@lines</FONT> =3D $server->head<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#cdad00>$group</FONT><FONT =
color=3D#00ffff>[</FONT><FONT color=3D#cdcd00>1</FONT><FONT =
color=3D#00ffff>])</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't get headers from first article in =
comp.lang.perl.misc\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$server->post<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@message</FONT><FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't post\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT>$server->
postok<FONT color=3D#00ffff>()</FONT>
<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#98fb98>warn</FONT> <FONT color=3D#00cd00>"You may not =
post.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN990>Reading Mail with POP3</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT>$pop =3D Net::POP3->new<FONT =
color=3D#00ffff>(</FONT>$mail_server<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't open connection to $mail_server : =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>defined</FONT> <FONT =
color=3D#00ffff>(</FONT>$pop->login<FONT =
color=3D#00ffff>(</FONT>$username, $password<FONT =
color=3D#00ffff>))</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't authenticate: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
$messages =3D $pop->list
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't get list of undeleted messages: =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT color=3D#9ac0cd>$msgid</FONT> =
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>keys</FONT> =
%$messages<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
$message =3D $pop->get<FONT color=3D#00ffff>(</FONT>$msgid<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>unless</FONT> <FONT =
color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>defined</FONT> =
$message<FONT color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#98fb98>warn</FONT> <FONT =
color=3D#00cd00>"Couldn't fetch $msgid from server: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>next</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe># $message is a reference to an array of lines
</FONT> $pop-><FONT color=3D#ff7f50>delete</FONT><FONT =
color=3D#00ffff>(</FONT>$msgid<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$pop =3D Net::POP3->new<FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#00cd00>"pop.myisp.com"</FONT> <FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't connect to pop.myisp.com: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$pop =3D Net::POP3->new<FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#00cd00>"pop.myisp.com"</FONT>,
<FONT color=3D#00cd00>Timeout</FONT> =3D> =
<FONT color=3D#cdcd00>30</FONT> <FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't connect to pop.myisp.com : =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>defined</FONT> <FONT =
color=3D#00ffff>(</FONT>$pop->login<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"gnat"</FONT>, <FONT =
color=3D#00cd00>"S33kr1T Pa55w0rD"</FONT><FONT color=3D#00ffff>))</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Hey, my username and password didn't =
work!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>defined</FONT> <FONT =
color=3D#00ffff>(</FONT>$pop->login<FONT color=3D#00ffff>(</FONT> =
<FONT color=3D#00cd00>"midget"</FONT> <FONT color=3D#00ffff>))</FONT> =
<FONT color=3D#bebebe># use Net::Netrc to find password
</FONT> <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"Authentication =
failed.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>defined</FONT> <FONT =
color=3D#00ffff>(</FONT>$pop->
login<FONT color=3D#00ffff>())</FONT>
<FONT color=3D#bebebe># current username and =
Net::Netrc
</FONT> <FONT color=3D#98fb98>or</FONT> <FONT =
color=3D#ffa500>die</FONT> <FONT color=3D#00cd00>"Authentication failed. =
Miserably.\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$pop->apop<FONT color=3D#00ffff>(</FONT> $username, $password =
<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't authenticate: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#cdcd00>%undeleted</FONT> =3D $pop->
list<FONT color=3D#00ffff>();</FONT>
<FONT color=3D#ffa500>foreach</FONT> <FONT =
color=3D#9ac0cd>$msgnum</FONT> <FONT color=3D#00ffff>(</FONT><FONT =
color=3D#ff7f50>keys</FONT> <FONT color=3D#cdcd00>%undeleted</FONT><FONT =
color=3D#00ffff>)</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"Message =
$msgnum is </FONT><FONT color=3D#cdcd00>$undeleted</FONT><FONT =
color=3D#00cd00>{$msgnum} bytes long.\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"Retrieving $msgnum : "</FONT><FONT =
color=3D#00ffff>;</FONT>
$message =3D $pop->get<FONT color=3D#00ffff>(</FONT>$msgnum<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$message<FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#bebebe># succeeded
</FONT> <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> @$message<FONT =
color=3D#00ffff>;</FONT> <FONT color=3D#bebebe># print =
the message
</FONT><FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> =
<FONT color=3D#00ffff>{</FONT>
<FONT color=3D#bebebe># failed
</FONT> <FONT color=3D#ff7f50>print</FONT> <FONT =
color=3D#00cd00>"failed ($!)\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN993>Simulating Telnet from a =
Program</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Net::Telnet</FONT><FONT color=3D#00ffff>;</FONT>
$t =3D Net::Telnet->new<FONT color=3D#00ffff>(</FONT> <FONT =
color=3D#00cd00>Timeout</FONT> =3D> <FONT color=3D#cdcd00>10</FONT>,
<FONT color=3D#00cd00>Prompt</FONT> =3D> =
<FONT color=3D#00cd00>'/%/'</FONT>,
<FONT color=3D#00cd00>Host</FONT> =3D> =
$hostname <FONT color=3D#00ffff>);</FONT>
$t->login<FONT color=3D#00ffff>(</FONT>$username, $password<FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#cdad00>@files</FONT> =3D $t->cmd<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"ls"</FONT><FONT =
color=3D#00ffff>);</FONT>
$t-><FONT color=3D#ff7f50>print</FONT><FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"top"</FONT><FONT =
color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>undef</FONT>, =
$process_string<FONT color=3D#00ffff>)</FONT> =3D $t->waitfor<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>'/\d+ =
processes/'</FONT><FONT color=3D#00ffff>);</FONT>
$t-><FONT color=3D#98fb98>close</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>/<FONT color=3D#00ffff>[</FONT>\$%<FONT color=3D#bebebe>#>] $/
#-----------------------------
</FONT>$telnet =3D Net::Telnet->new<FONT color=3D#00ffff>(</FONT> =
<FONT color=3D#00cd00>Errmode</FONT> =3D> <FONT =
color=3D#ffa500>sub</FONT> <FONT color=3D#00ffff>{</FONT> main::<FONT =
color=3D#98fb98>log</FONT><FONT color=3D#00ffff>(</FONT><FONT =
color=3D#cdad00>@_</FONT><FONT color=3D#00ffff>)</FONT> <FONT =
color=3D#00ffff>}</FONT>, ... <FONT color=3D#00ffff>);</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$telnet->login<FONT color=3D#00ffff>(</FONT>$username, =
$password<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Login failed: @{[ $telnet->errmsg() =
]}\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$telnet->waitfor<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>'/--more--/'</FONT><FONT color=3D#00ffff>)</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT>$telnet->waitfor<FONT color=3D#00ffff>(</FONT><FONT =
color=3D#00cd00>String</FONT> =3D> <FONT color=3D#00cd00>'greasy =
smoke'</FONT>, <FONT color=3D#00cd00>Timeout</FONT> =3D> <FONT =
color=3D#cdcd00>30</FONT><FONT color=3D#00ffff>)</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN996>Pinging a Machine</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Net::Ping</FONT><FONT color=3D#00ffff>;</FONT>
$p =3D Net::Ping->new<FONT color=3D#00ffff>()</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't create new ping object: $!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"$host is =
alive"</FONT> <FONT color=3D#ffa500>if</FONT> $p->ping<FONT =
color=3D#00ffff>(</FONT>$host<FONT color=3D#00ffff>);</FONT>
$p-><FONT color=3D#98fb98>close</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
# use TCP if we're not root, ICMP if we are
</FONT>$pong =3D Net::Ping->new<FONT color=3D#00ffff>(</FONT> $> ? =
<FONT color=3D#00cd00>"tcp"</FONT> : <FONT color=3D#00cd00>"icmp"</FONT> =
<FONT color=3D#00ffff>);</FONT>
<FONT color=3D#00ffff>(</FONT><FONT color=3D#ff7f50>defined</FONT> =
$pong<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't create Net::Ping object: =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#ffa500>if</FONT> <FONT =
color=3D#00ffff>(</FONT>$pong->ping<FONT =
color=3D#00ffff>(</FONT><FONT color=3D#00cd00>"kingkong.com"</FONT><FONT =
color=3D#00ffff>))</FONT> <FONT color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"The giant =
ape lives!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT> <FONT color=3D#ffa500>else</FONT> <FONT =
color=3D#00ffff>{</FONT>
<FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"All hail =
mighty Gamera, friend of children!\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#00ffff>}</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT></PRE></FONT></TD></TR></TBODY></TABLE></DIV>
<DIV class=3DSECT2>
<H2 class=3DSECT2><A name=3DAEN999>Using Whois to Retrieve Information =
from the=20
InterNIC</A></H2>
<TABLE width=3D"100%" bgColor=3D#2f4f4f border=3D0>
<TBODY>
<TR>
<TD><PRE class=3DSCREEN><FONT color=3D#f5deb3 size=3D+1><FONT =
color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ffa500>use</FONT> <FONT =
color=3D#b2dfee>Net::Whois</FONT><FONT color=3D#00ffff>;</FONT>
$domain_obj =3D Net::Whois::Domain->new<FONT =
color=3D#00ffff>(</FONT>$domain_name<FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Couldn't get information on $domain_name: =
$!\n"</FONT><FONT color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe># call methods on $domain_obj to get name, tag, =
address, etc.
#-----------------------------
</FONT>$d =3D Net::Whois::Domain->new<FONT color=3D#00ffff>(</FONT> =
<FONT color=3D#00cd00>"perl.org"</FONT> <FONT color=3D#00ffff>)</FONT>
<FONT color=3D#98fb98>or</FONT> <FONT color=3D#ffa500>die</FONT> =
<FONT color=3D#00cd00>"Can't get information on perl.org\n"</FONT><FONT =
color=3D#00ffff>;</FONT>
<FONT color=3D#bebebe>#-----------------------------
</FONT><FONT color=3D#ff7f50>print</FONT> <FONT color=3D#00cd00>"The =
domain is called "</FONT>, $d->domain, <FONT =
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -