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

📄 00000004.htm

📁 一份很好的linux入门资料
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;wxb1&nbsp;(ben),&nbsp;信区:&nbsp;Linux&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;[5/8]&nbsp;呼叫BBC暨主动传真服务&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木清华站&nbsp;(Fri&nbsp;Jun&nbsp;11&nbsp;14:22:51&nbsp;1999)&nbsp;<BR>&nbsp;<BR>以Linux实作&nbsp;语音/传真/EMAIL/BBC&nbsp;整合系统&nbsp;<BR>5.呼叫BBC暨主动传真服务&nbsp;<BR>&nbsp;<BR>呼叫BBC&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;目前许多ISP都有提供邮件来时,以BBC的方式通知客户的贴心服务(需&nbsp;<BR>您BBC的厂商和该ISP有合作关系),此处呼叫BBC,事实上并非拨您BBC的号码,&nbsp;<BR>而是透过BBC厂商提供的网际网路传呼功能,进行呼叫动作,因此目前可传呼的对&nbsp;<BR>象为中华电信、大众传呼等的客户,至於中华国际传呼虽也提供网上传呼,但我&nbsp;<BR>并无密码,因此也呼叫无门!目前此系统可呼叫的号码及讯息如下:&nbsp;<BR>&nbsp;<BR>BBC&nbsp;开头&nbsp;&nbsp;&nbsp;有语音讯息&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有传真&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有Email&nbsp;to&nbsp;FAX&nbsp;<BR>0950&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;VOICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;FAX&nbsp;&nbsp;[您的代号]&nbsp;EFAX&nbsp;<BR>0942&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;VOICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;FAX&nbsp;&nbsp;[您的代号]&nbsp;EFAX&nbsp;<BR>0948&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;VOICE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;FAX&nbsp;&nbsp;[您的代号]&nbsp;EFAX&nbsp;<BR>095*(数字型不含0950)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;55555&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;333&nbsp;&nbsp;[您的代号]&nbsp;1333&nbsp;<BR>060&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;55555&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;333&nbsp;&nbsp;[您的代号]&nbsp;1333&nbsp;<BR>070&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;55555&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[您的代号]&nbsp;333&nbsp;&nbsp;[您的代号]&nbsp;1333&nbsp;<BR>&nbsp;<BR>注:中华电信需有HINET拨接密码,才可传呼,且可送简讯至大哥大手机,其BBC&nbsp;<BR>呼叫每次一元,大哥大为2.5元!&nbsp;<BR>&nbsp;<BR>呼叫BBC的bash&nbsp;script副程式如下:&nbsp;<BR>&nbsp;<BR>CallBBC()&nbsp;<BR>{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;抓取BBC号码&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;read&nbsp;userReg&nbsp;&lt;&nbsp;${MAINPATH}conf/$1.reg&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bbc=`$ECHO&nbsp;$userReg&nbsp;|&nbsp;cut&nbsp;-d&quot;,&quot;&nbsp;-f8,8&nbsp;-s`&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;[&nbsp;$bbc&nbsp;];&nbsp;then&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;写入记录档&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;logstr=`$DATE&nbsp;&quot;+%D&nbsp;%T,User:$1,$bbc&quot;`&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ECHO&nbsp;$logstr&nbsp;&gt;&gt;&nbsp;$BBCLOGFILE&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;执行BBC呼叫(bbc.pl&nbsp;&nbsp;PERL语言)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;${MAINPATH}bin/bbc.pl&nbsp;&quot;$bbc&quot;&nbsp;&quot;$1+$2&quot;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>在前几篇中未填入的&nbsp;-----------------&nbsp;Call&nbsp;BBC--------------------&nbsp;段落&nbsp;<BR>加入以下的呼叫:&nbsp;<BR>&nbsp;<BR>CallBBC&nbsp;$UserID&nbsp;&quot;VOICE&quot;&nbsp;&nbsp;&nbsp;//&nbsp;语音段落&nbsp;<BR>&nbsp;<BR>CallBBC&nbsp;$UserID&nbsp;&quot;FAX&quot;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;传真段落&nbsp;<BR>&nbsp;<BR>CallBBC副程式中的bbc.pl&nbsp;主要的工作是根据BBC号码分辨其是哪一家的BBC,是&nbsp;<BR>文字形或数字形的BBC,再决定如何呼叫!&nbsp;<BR>&nbsp;<BR>#!/usr/bin/perl&nbsp;<BR>#&nbsp;bbc.pl&nbsp;<BR>&nbsp;<BR>$PATH=&quot;/user/home/message/bin/&quot;;&nbsp;<BR>#================================================&nbsp;<BR>$number=$ARGV[0];&nbsp;<BR>$message=$ARGV[1];&nbsp;<BR>$ok=0;&nbsp;<BR>if&nbsp;($number=~/^0948(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;大众&nbsp;0948&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(&quot;${PATH}fitelbbc.pl&nbsp;$number&nbsp;$message&quot;);&nbsp;<BR>}elsif&nbsp;($number=~/^0950(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Hiair&nbsp;中英文&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(&quot;${PATH}hinetbbc.pl&nbsp;$number&nbsp;$message&quot;);&nbsp;<BR>}elsif&nbsp;($number=~/^0942(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Hiair&nbsp;中英文&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(&quot;${PATH}hinetbbc.pl&nbsp;$number&nbsp;$message&quot;);&nbsp;<BR>}elsif&nbsp;($number=~/^095(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ok=1;&nbsp;<BR>}elsif&nbsp;($number=~/^060(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ok=1;&nbsp;<BR>}elsif&nbsp;($number=~/^070(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$ok=1;&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>#&nbsp;ok=1&nbsp;为数字形BBC,将讯息转为数字&nbsp;<BR>if&nbsp;($ok==1)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$message&nbsp;=~&nbsp;s/VOICE/55555/g;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$message&nbsp;=~&nbsp;s/EFAX/1333/g;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$message&nbsp;=~&nbsp;s/FAX/333/g;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Hiair&nbsp;数字&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;system(&quot;${PATH}hinetbbc.pl&nbsp;$number&nbsp;$message&quot;);&nbsp;<BR>}&nbsp;<BR>&nbsp;<BR>fitelbbc.pl&nbsp;与&nbsp;hinetbbc.pl&nbsp;都是先把要送过去的资料处理编排好後,再模拟浏&nbsp;<BR>览器,利用HTTP&nbsp;POST&nbsp;Method的方式,将资料送出,若您不了解HTTP协定,可参&nbsp;<BR>考相关资料,或是在Linux上架起&nbsp;sniffit&nbsp;软体,实际捕捉传送的DATA,再依样&nbsp;<BR>画葫芦即可。以下为fitelbbc.pl原始码,hinetbbc.pl就省略了!&nbsp;<BR>&nbsp;<BR>#!/usr/bin/perl&nbsp;<BR>#&nbsp;fitelbbc.pl&nbsp;<BR>$FILE=&quot;/tmp/fitelbbc.txt&quot;;&nbsp;<BR>#================================================&nbsp;<BR>$number=$ARGV[0];&nbsp;<BR>$message=$ARGV[1];&nbsp;<BR>($sec,&nbsp;$min,&nbsp;$hour,&nbsp;$day,&nbsp;$mon,&nbsp;$year)&nbsp;=&nbsp;localtime(time);&nbsp;<BR>$mon=$mon+1;&nbsp;<BR>$year=$year-11;&nbsp;<BR>if&nbsp;($number=~/^0948(.+)/)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;大众网上传呼时&nbsp;&quot;0948&quot;不需敲入&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$number=$1;&nbsp;<BR>}&nbsp;<BR>#&nbsp;$query_str&nbsp;是主要传过去的部分&nbsp;<BR>$query_str=&quot;svc_no=$number&amp;pwd_in=%ABP%BEP%B4%C1%B6%A1%A1A%A4%F0%BB%DD%BF%E9%A4J&nbsp;<BR>&amp;i&nbsp;<BR>sp_code=1&amp;s&nbsp;<BR>ender_name=+&amp;reminder_option=OFF&amp;year=$year&amp;month=$mon&amp;day=$day&amp;hour=00&amp;min=00&amp;m&nbsp;<BR>essage=$messag&nbsp;<BR>e&quot;;&nbsp;<BR>$query_len=length($query_str);&nbsp;<BR>#print&nbsp;&quot;$query_len,$query_str\n&quot;;&nbsp;<BR>&nbsp;<BR>#&nbsp;大众网站&nbsp;<BR>$them='www.fitel.net.tw';&nbsp;<BR>$port=80;&nbsp;<BR>$AF_INET=2;&nbsp;<BR>$SOCK_STREAM=1;&nbsp;<BR>$sockaddr='S&nbsp;n&nbsp;a4&nbsp;x8';&nbsp;<BR>($name,$aliases,$proto)=getprotobyname('tcp');&nbsp;<BR>($name,$aliases,$port,$proto)=getservbyname($port,'tcp')&nbsp;unless&nbsp;$port=~/^\d+$/;&nbsp;<BR>($name,$aliases,$type,$len,$thataddr)=gethostbyname($them);&nbsp;<BR>$that=pack($sockaddr,$AF_INET,$port,$thataddr);&nbsp;<BR>if&nbsp;(socket(SOCK,$AF_INET,$SOCK_STREAM,$proto))&nbsp;{&nbsp;<BR>#&nbsp;&nbsp;print&nbsp;&quot;socket&nbsp;OK!\n&quot;;&nbsp;<BR>}&nbsp;<BR>else&nbsp;{die&nbsp;$!;}&nbsp;<BR>if&nbsp;(connect(SOCK,$that))&nbsp;{&nbsp;<BR>#&nbsp;&nbsp;print&nbsp;&quot;connect&nbsp;OK!\n&quot;;&nbsp;<BR>}&nbsp;<BR>else&nbsp;{dis&nbsp;$!;}&nbsp;<BR>select(SOCK);&nbsp;$|=1;&nbsp;select(STDOUT);&nbsp;<BR>&nbsp;<BR>print&nbsp;SOCK&nbsp;&lt;&lt;SEND_END;&nbsp;<BR>POST&nbsp;/cgi-bin/internetpage.exe&nbsp;HTTP/1.0&nbsp;<BR>Referer:&nbsp;<A HREF="http://www.fitel.net.tw/html/svc03.htm">http://www.fitel.net.tw/html/svc03.htm</A>&nbsp;<BR>Connection:&nbsp;Keep-Alive&nbsp;<BR>User-Agent:&nbsp;Mozilla/4.03&nbsp;[en]&nbsp;(WinNT;&nbsp;I)&nbsp;<BR>Host:&nbsp;www.fitel.net.tw&nbsp;<BR>Accept:&nbsp;image/gif,&nbsp;image/x-xbitmap,&nbsp;image/jpeg,&nbsp;image/pjpeg,&nbsp;*/*&nbsp;<BR>Accept-Language:&nbsp;en&nbsp;<BR>Accept-Charset:&nbsp;iso-8859-1,*,utf-8&nbsp;<BR>Content-type:&nbsp;application/x-www-form-urlencoded&nbsp;<BR>Content-length:&nbsp;$query_len&nbsp;<BR>&nbsp;<BR>$query_str&nbsp;<BR>SEND_END&nbsp;<BR>&nbsp;<BR>#&nbsp;接收POST之後回传的DATA(并未利用)&nbsp;<BR>open&nbsp;(MYFILE,&quot;&gt;&nbsp;$FILE&quot;)&nbsp;||&nbsp;die&nbsp;&quot;Can't&nbsp;open&nbsp;file:$!\n&quot;;&nbsp;<BR>do&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$recv=&lt;SOCK&gt;;&nbsp;<BR>#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;&quot;$recv&quot;;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;MYFILE&nbsp;&quot;$recv&quot;;&nbsp;<BR>}&nbsp;while(&nbsp;length($recv)&gt;0);&nbsp;<BR>close(SOCK);&nbsp;<BR>close&nbsp;(MYFILE);&nbsp;<BR>&nbsp;<BR>传真额外服务&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;此系统所谓的传真额外服务,操作方式为:当输入[代号],听完&quot;留言请&nbsp;<BR>按「1」,送传真请按「2」……&quot;後,尚可按「5」,仍後会听到&quot;请输入服务代码&nbsp;<BR>&quot;,目前可输入以下代码收取传真:&nbsp;<BR>10:统一发票号码&nbsp;、&nbsp;11:今日天气&nbsp;、&nbsp;12:明日天气&nbsp;、&nbsp;13:一周天气&nbsp;、&nbsp;14:卫星&nbsp;<BR>云图&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;其作法也是在网际网路上,定时抓取以上的相关资料(仍是用HTTP),&nbsp;<BR>转换成传真格式,等待客户拨接进来後传送出去。&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;统一发票在网路上许多地方都有提供,比较讨厌的是其格式皆为HTML,&nbsp;<BR>需加以转换後(去除其中TAG),变为纯文字後,再转为传真格式;其余几项皆为&nbsp;<BR>中央气象局的资料,其本身就有纯文字的档案,故不需再做处理;卫星云图是GIF&nbsp;<BR>的格式,仍须用到前篇所述的PBMPLUS工具软体做转换:&nbsp;<BR>GIF&nbsp;-(giftoppm)a&nbsp;PPM&nbsp;-(ppmtopgm)a&nbsp;PGM&nbsp;-(pgmtopbm)a&nbsp;PBM&nbsp;-(efix)aTIFFG3&nbsp;<BR>&nbsp;<BR>giftoppm&nbsp;$GIFFILE&nbsp;|&nbsp;ppmtopgm&nbsp;|&nbsp;pgmtopbm&nbsp;|&nbsp;efix&nbsp;-i&nbsp;pbm&nbsp;-o&nbsp;tiffg3&nbsp;-d&nbsp;0.5,0.5&nbsp;-s&nbsp;2,&nbsp;<BR>1&nbsp;-p&nbsp;4,6&nbsp;-n&nbsp;$FAXOUT4&nbsp;<BR>&nbsp;<BR>以下为统一发票的抓取范例,天气部分因为颇为类似就省略了!&nbsp;<BR>&nbsp;<BR>#!/usr/bin/perl&nbsp;<BR>$FILE1='/tmp/ultra1.htm';&nbsp;<BR>$FILE2='/tmp/ultra1.txt';&nbsp;<BR>$FAXOUT='/user/home/message/fax/ultra/ultra1.%03d';&nbsp;<BR>

⌨️ 快捷键说明

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