Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
404 views
python网络编程
Python Network Programming
Uploaded by
beetho1990
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save python网络编程 For Later
Download
Save
Save python网络编程 For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
0 ratings
0% found this document useful (0 votes)
404 views
python网络编程
Python Network Programming
Uploaded by
beetho1990
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save python网络编程 For Later
Carousel Previous
Carousel Next
Save
Save python网络编程 For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
Download now
Download
You are on page 1
/ 537
Search
Fullscreen
eer 6 Apress’ Foundations of Python Network Programming a UCR Ae: ea aes ea) [%]JohnGoerzen #& ie ae a3Python P28 4a on Foundations of Python Network Programming [%] John Goerzen = R i8 ad SFL Ma, Publishing House of Electronics Industry Ata + BEINGAS wT pA TRSP HY AEA Python i Pe T SSR Per ARITA, FEAROMABBMAI, MAA BBR. Web Services. AF HTML #1 XHTML. XML. E-mail 2%. FTP. {81 Python BREE Slo JL BMHEN ALAS Socket HLJE%., SimpleXMLRPCServer, CGI AI mod_python) » ULI PFO CELE forking. ARFEEL 2) A. AASSRAAPEER. SEARO T RATS MEE, 6.600 40h LAE, ALIHMb ie At eiN MG DGREAY 2) Pythom 125 $515 HE FEI EEA SCR ISAT UAME I HelkUh,Python, Webs AUMERREFEITAEA RUNS AGT, CScbR LAD ARH PABHEEA, ma 1.59059.371-S Foundations of Python Network Programming by John Goerzen. ‘Original English language edition published by Apress L. P., 2560 Ninth Sureet, Suite 219, Berkeley. CA 94710 USA. Copyright © 2006 by Apress L. P. Simplified Chinese-language edition copyright © 2007 by Publishing House of Electronics Industry. AUl rights reserved. AS Aafa HOE SCG AY RE LLINSELAL Apress LP. 2s BE THR PTAMRIRNGRE, AREY PIT. ARLE AUT A TED NIT WRELHL ATIC FAG: 01-2007-0689 BMRA (CIP) Se Python MERSIEEG / (XD Bie (Goerzen J.) Hr SULA —Abat: ALY LNRIAEE, 20076 48 8 X:Foundations of Python Network Programming, ISBN 978-7-121-04495.3 LP ILD AOR OAT PREY WV -TPNN.S6 “SpE ARPA CIP BAH (2007) 9.074160 5 TTR: IN RLS KEEL ad i SED ARES A HARSH T so PTI AR AGRI ARIE 1 ABH 73 {89H A 100036 JR: 787X980 16 EUR: 34 FRE 00 We 2007 41 6 AML TAC ft: 68.00 7. STW SR fT MIRE PS USERRA UES I ER, TAH ET HE KH, RE RAF: (010) 88254888. aR BURBS RAIMA
[email protected]
, MAE BURIRIA WEF
[email protected]
. HRSINE. (O10) 88258888.WDE TAR RINSE Torah: BN MTEL HMI), EAE AE EF ET AR EL, HAE RL fe AE eR (a). ROR FASO. BEATS we TOR ERE Python Misia ERERASC SH LLB FAR SA BM MMAR. ASH:
[email protected]
ERHME:
[email protected]
AR SOR BETA BR SB] RLS) HEM RM UR RAY ARREARS WEAR PALE AIM 1402 ARBRS: 430074 ifs (027)87690813 8H: (027)87690813 #817 EEAVSMM LAVALLE, RSENS, DE. httpfov.csdn.net RFAH MR, RFRA MAMI, IDSA ee http: /folog.csdn.netfbvbook Python Fats ta FEC (etn enei & KREAA THM KA, BAKERS HMR, MERRY Python A. MB. ARISE BARA RL A. TIE RAIL, BORLA MARRERO PERCE oR, ORR LA LA 2x EAH AI SMH Python SHEEN. RE EEIAY Python Si, POSER, OTLB BAG Python FRAT. AH. AUR MAE. CEH T Python FEREZ IS. fl BAMA RATE — ARB HL HIS} 2H EE] Python EAT REN HB. AMSAT AEAE MT. JLB a TS ST AT A. AMES) FTP. E-mail BIRR XML, Web Service, ARB) aTH TIN SA PEAR EMS, AAR. ARBRE TORRE GUAIHBCUR) TURNERS. MREFDALEPRAN ABT, — BIE IR. AS EEA OSL EA ROUEN, AB ASE. HDL VM USE AIS. EDT AAA, EPCRA RA PAM, ERE Be AEA — ADO St, EBAY SERPS ER John Goerzen, BATRA SAAT. TENET, BRR LAL Python AURA LAW AM. RGR DAO eA: AE AL Ch ABR ER PA AB ES ACMA. CRM At. RBM MUNA ETL TEAR AAT ES FPR, EAI ASIA HAR. BAF himodow 9:4, ZED) Python MYLES TAR SED. KHCEPIRMHKAVURRNLT Kiny. RM ILE, BATMAN HE, RBABRAR RAY EAA PRA DAP APR OL ABS fa OR, ABE RA SR A, A Python Mi Se FERRYvi zB BAYT A, OATH FOURTH AC Te AIDS AR, SHEA RB PE EERE A Ah SPE. HE RR TP a. RTA ORE, RARER, VOPR AEM. BASE, Rd PE. RRL RPL, BMA. ERR RR —TS STE FO) AN EBA MERE BEM REI HTIK, BRI 0 Fh eee BL YE IT BOREAL AREY CREE). AAU EE, (EMAAR, RATER A SSE, MHESHRL SER. HWBSEALMEA LIN, MIRAE wT DABS ME AE, Fh Py TT LR aa ATH RE, A AT BE AP A A, 4s Python 4.9 f2 PREP Gi. SUR EE, HER Eo AL MT WR ALF Ze oe SERRA ASP SE ARG ALY EER RG FIR, AYE So PIT A “bey zB 2007 #3 AL Python SFE SARAES John Goerzen J 1996 4 FFM #JE Debian GNU/Linux PEROT + BBE 15 Af PLB AE Ia FEB AS TA. ABE SE. PEAR A AS a DOR, PLC LAE EBC AL bo Jy TO Pe FLT, Ae aR aa a) A Unix HA, IFAC Python FPR TST a BENE satin %& E99 Debian LESAGE, John Wy RRM TRE A FAIERE. Dk 1998 AE FFM, eB Tah aR aA A REMIT HE Debian, FF7E Alpha, PowerPC, AMD64 Ai NetBSD i386 1-579 T AMI HER. 2003 4, John Wéii# T Software in the Public Interest (SPI) (HM. ikAN Debian ZEISS EMH. FI MZERT OR, Mh WEEE dr I SPL (IRIS K, STE BREA Debian THA wes 2 5h. John ZEA T A MAIR fa) HP. AE de i nN EA 47FAVEHH Python “SAKES FEE. OfflineI MAP J —70L I AGE BEAR, Th] PyGopherd Se —4& PPLE Web Al Gopher IR 85 CM HABA] Python B41 RY BETES A UR A Hr ALBEE T REM RR HE John i655 TALL 13, (046A 800 HAY CLinux Programming Bible) SO, PIRES MCRAE. ABIRAB SET Air Capital Linux HPAL, Je HE CEM LTE Python FSS FEAKFRABR About the Technical Reviewer Magnus Lie Hetland 2 HAE NCA Hm BAZ, LM 1997 4 FEREAE AY Python. fb Edt AT MIS Ae Instant Hacking” il “Instant Python” (fF %. ty RODE T 26 RPE RAR SRIEAT (Practical Python) (Apress, 2004) Python /O&¢ REA RYSRAPZATRSAMMIR, A. TMA. RARLA, RARER, AT EL BRT CAAL Lk MAL iat al Fike A: © Magnus Lie Hetland, SAUTER. SA LALILA Magnus ABFA Python ACE. ALBEE ASAHI He ORTT. BRAE ABUL A AER Te RAT MEMS Mii. © Ellie Fountain, ati. (RS IAL OMT LGEtT I FCM AOOLABET, Ellie (Pas HPo. © Beth Christmas, 5H 2538. fe ARAMA F APTA Hef ZAM, Beth SUE 2th et E-mail AUNREIUER. CEIMHELE RE, LAURA APE. BREST I HZ SHEA, tf, SHIM RA Tite. Jason Gilmore, i{E iM. Jason XP — RHF KATA RS MR. HSB MIR, BUDS AT — 6, RAB) Jason ik URL Oh ATT ORS 5 FR Nea TAM ey Reh RE IAL @ Mark Nigara, Fie. “xt Mark RIT. HURAMMBT. RMT, AH SEA LGR To FB) Mark URED G. BREE AGC PAG AE MT TS RE aH GUI & OY Pete we ML. MEFS ARABI AA TAR. RAE EP Abt: © {Guido van Rossum:: SIAM BA T Python X11 ALANA. HI Python 8°55 ity PTE A LE. Python SFEvi Bie @ {Richard M. Stallman: ABN ib Bet) 8) T PME RE ER ROME. 48, 268i Vint Cerf, Robert Kahn Fi Jonathan Postel § (VAS. FEMALE PLHP KEIR A Python FS 4478 Mintyfe1IT introduction 2S Fi, HARARE. ROAMAMSMAFEM MARIE. Ham TRAIT). OSS AT BRT BESTA ALO Sh, SEER EIR AEE TOA, KAPKA GM E-mail, AH MAMEWM AG, ARB RMS RAT BATT BARE A TE ANS. TE EL ABET DL Ye EP PN ER. ECE BE Ae IR ATT ELAR SA. MEE RM A FH JSF Intemet L247 25 FLT. te WK. CME SEO. (EAA BARA, CREAT RGRAY Intemet LBAMILANA. EMSVLE, RINT BOT MERAH, THERE CATR AY 5 Fal IR tPA OH i ELA LRA OA HB, BRAG A EIR SEO FB $8 9 T (Iter ST MOU A ARN La HT BBB AAA 6 THB. BS ABSIT Internet AE AN fe) THEA. (HEY Internet iN AEA. HAT CEH 7 NS GA MAY BAB —eRAT A, BME RUT Web ARS AMMAR. 3 AS} EA E-mail MSAK. ZE Web at E-mail J (eth(204 TRS AMAR. CAPA ADSTAN AE, SMH TM RHA eT Ro FRA MAT Heth EER, Gt: SUB AICP EM. ENB TEM REE EE. SOAM HEME TREK, LAER ELAM EE TA. Python (Sh FEvill fay GE ATE Tn fe "SHR a, GEO ARP] ELAR RE E.R ASAD AR 5 BBE, AH ARSE AA AS RA EH A HE AR SIGE 5 BS 6 PALA Fd SIRE TN DAD a I DN A ak Se MB AS 2 A i BRA, IER TCA OT PRR, AER RTT ATO. RE APPAHINDEE, dues SNH, eb) Magnus Lie Hedland LS SLA — iY Python MI. UREA, RABIN 2) Apress lM (Practical Python? . RASBLEGOVLA LICR T Python 2.3 SERINE, TEAL RLM ALNN ESS. AM LAOH BLAH Python, MAEM ATE RAL EME, ME RA RET Python. #8581 LLM wow python.org Fi Python MME Ct ASR. SIE, SRA EL AY LAS AE HI VBR ASP ASAE EL fT EI Pini WF AUREL, CATV Apress MUA www.apress.com FR. RRM MIE TIT Mt. FO ARMED Poe EAT CUE A ORE RURLA, i LAK SO Oe ABER. ATL HRT AVY. CTU RHE TOAR. OSPR VERRIER REA CARAD «ILS BERYL BRAN RR Ie TR. AARP PAR, MPR UURARAM AR. HART HHL SOT, “S” RARE RK SIT. FUER PEER Be ARS SE A HB. BER SEAR T NITE LAS PME. HAT BORE RAS BRE REMOTE. BT: PREALTATHOREEM AM, TMQALPHREEE, HEATHER RA Pitt ha Rae Lik trey, Linux, FreeBSD, Mac OS X, SolarisRI A HBUNIX#RIERGE FAT RF ABEL SR He RRR HE BOE T Python MERE, IF AELL Python fir ff). 28 BRB rus env REFER TE AUN. AE ASOT IY Python FEE RUST ALLL e TEAM, Python HUSA AshBr ix SS AIDLSAOR HE RARER Python MARAPKIZTOMEAE. LORETO PADRE, BS SRO Python BETS RIAN. PLAC En GM RE A RAUB L: Python PFE BiH. Flat, SPAT BETO AE DAR ATT BR. MR ET RETR, RBG ARAMA B, TIM chmod 0755 scriptname.py MIR MEAS AA OTT AA, RR riptnane.py CORAL IER, MEAT ULF abies Python MR, BiB python RAMEN, ARIE. /scriptname.py. TAB. GRRE H) Linux/UNIX FA, RAE BME CEA UNIX MERSE, tet ‘#8 Mac OS X. f£f] TF OS X fH Mac RAFRE, MAA MT OT Z A Windows#R EAR GE Windows Befk RSIFA AF Linux/UNIX FN PALES AT Me: HE. BTLLLE Windows BERR AHEAL. /scriptname py JRA SURAT AR. BEE BPW. /scriptnane. py JkPEIHE 4. HAH pychon scriptname.py KP. 364i—-% Linux/UNIX ¥ GHP DALE Windows EE RAR ASH (ah BER E Python 7. #6H2 4676 Linux/UNIX "Fé HEGRE) < YEAR TALIS 3 EP MAIN ineca HM ANF 4 & Cinetd-style server) . 8 20 Hee sPHH A forking, 4E98 22 Seep Sp HH HBA KT Reba {2 Casynchronous communication) (592. PRHTZER2E RL}, HUTS BAU EE AMM LAE & HR I WEP INP. eT Lt AAR OR EME SER BME RAIS Python #7RS AAI Windows MAL. FRAEMIMRA A www. python.org, {HE IRAE PAINE. ALARA 28 SF AEA RON (Bug) 487. ASb 7S OOM Jé ActivePython, BTL wuwaactivestate.com #2). LIGA A, MALE SI—we gee ob AE, SAT CAAT IR HL SHOR HUA Linux/UNIX HOVE AERA —F Cygwin, SE PTLLM www.cygwin.com HI. EN Windows Hete RSGE T — 10 Linux HEH, MRE, BEM wow, pythonorg F @® Python MK, LA REAL. Python MS BAHRihB aR SLA HTM, RO Rees bee eA: © SKA Imemet HPI FEHB, HHO RFC (Request for Comments) 3A, 5 aI LL ZE wuw.rfe-edilororg Al www,fags.org 1ARSe © AF Python Aiki LH, ZE www python orgioc E119 (Python #IRBAPD (Python module reference) RIFE HM. © 5G 58-5)i6) BIRT, comp.lang_python Hill —A i AF a a EAD PRR Fi. WSIS, ATL www fags.org/fags/python-fagfpython-newsgroup-fag/~ BIRT. IE Jr8BT MUR BCA SFMEAIA (Usenet news access) + fiVe/ Fl E-mail RS SHtie. © NSBR TE RR TF BE SCM He 2 OR et 1 i A PB RR BRR CBE ORG KID AR A. BR E-mail St hh SB RARE AM E-mail, HLAGR RAN] —-—EB. Hr Lis AB Dy I TH BBR Lf TT EL.
[email protected]
. IS Python HUSA aayBR—h Contents at a Glance EBD PER eee a) SVB SAAR RT ce cccceceneeeennseeesnneneeen sestnseetensaneennnnee B lB RAR. cevneeeneetneean 19 BSR MARES... evstnentnntetene 35 BAB MARM.......... sos ppnnsvannnnnanaisuansnnsessesseceeeeeensenecenennnase 65 BSR BAMBI... 87 38 285) Web Service BOR Web FAwmIi) 37% ft HTML #0 XHTML........... 38% XML M1 XML-RPC......... #3885) E-mail ARS Python PIE AYviii __ BRA BOB E-mail HS AB... sesetneineneenennenenseen TD 10S BRM MIL (SMTP) - cesseeneeesee 197 381% PoP 2M 12% imap. 223 HAR? SANA... 273 ISB FTP... oe . vee see 275 B4R WRERA I .. seseetnseinstnecttesetestsestnseessensees 295; FES HE SSL cessnsntnmnnnnntnnintennnente evonemenennte 321 FES BBS) ARS ATR . 339 $816 H SocketServer........ 341 $8.17 % SimpleXMLRPCServer. 355 #18 CCl 319% mod_python .... HOR SLBA B20 BH forking ne ceeessseen esseeeesans cossoeeeteeteeteeneannnneeoee woe AI9 BNE we... 443, B28 FPR. 469 Ral oe A91 Python Mae ae FE ay | ener steB ® Contents RTE RFRA ie ar F1BD REM ..... 21 SAMS SMT 11 BAR TCP BER 1.2 MEDS PVH Ss BESS 1.3 ERE UDP oss 14 EPEAT AI csc 1S) Python (428472 os Lo Bh... B2e Meee... ee sn so 19 2.1 SHAR socket. so sn se sn 19 2.2 BET socket conn . srsnntnninnnnnnnnninnin 20 2.3 FIAT socket iff... ne ennse snnene sonenee 23 24 AREER sent os seme 23 2.5 HEAL UDP vernon . so 31 Python USS ie FERRE26 BH... BSB MARS . vee 35, BL HEHEHE - 35 3.2 HSIEH. “nannies: 40 3.3 MERE .. vs . vs ve vs “ 41 34 fit UDP... . 43 3.5. AHH inetd BE xinetd . seonrninenininnnene 4S 3.6 MLE syslog ICRA . 55 3.7 RESTA secre sen 60 BB ABE essestssmsmnenaemenssnasissnasnsasiee os 63 BAS ReZRK seoiinnnnninninnnnninniniiintnnntnnentensinnnnns 65 4 iff DNS fi) 4.2 HEA PRTE RR AAR ssesnnseseeaen 66 4.3 fH] PyDNS HEtT Heo # if) 76 44 ee oe ses . BSS BRM so snmnnnnninnne BY 5.1 YF Hi socket 87 5.2 Bit 89 5.3 fe ETE 90 54 BRS PM sonrnnornsenenee oss eens 9B, 5.5 EAA)... sesnesennents soenessanetaeseesaesennennenne 9S 5.6 EFI IPv6. 5.7 SBse BU PRA Sih . 102 5.8 {HF poll() at select() IHR I EE KI. 104 59 BH conn 109 3% 2 85} Web Service. 6B Web IIA nn . ae 1b 6.1 BK Web TID. ssnnnnnnnnnnnnnnn sn seen 4 62 ii lS 63 RACE vel 8 Python Wie AEA penne senna: annem64 OHH... - sernennnnninennnaneennes PL 6.5 HALE HTTP Brix 125 6.6 BB recs seve vs reenense z vs sve 125 SATE BA HTML FA XHTML oe semen IPT 7.1 BERRI AA) HTML afr seneannnnnnsnnnee 1B 7.2 Shee) HTML, 73 —ASRER ATLL TEBE... TA BH... 38% XML 4 XML-RPC 8.1 BENE XML sth 82 (I DOM... 83. (Hi XML-RPC..... 84 BH... 3% 3285} E-mail ABS... 9H E-mail Mas AA - ~~ z 169 9.1 EES EL ose “ 7 . 169 9.2 BS HSA EE 173 9.3 RPT SERI PE 176 9.4 U8 MIME....... 180 9.5 Ih MIME Hitt 182 9.6 85 MIME HBT... 185 9.7 MIREAP IEE AY header. 187 98 MRR SAS .. 188 9.9 feiT MIME fib 2 190 9.10 BEF nraononne se seinineneninennnnns IS 10M BAMA MDIL (SMTP) no - 197 10.1 SMTP JRE I cane 10.2 HRA MR 10.3 EHLO #49 51/8 &. Python ISM AERERExi B 10.4 (RHR Sockets 2 (SSL) MRAM (TLS) 10.5 iil: 10.6 SMTP #455 10.7 iH NB POP... 1A SeRRIAGE 7 sense QD 11.2 BRB 11.3 FRB EE 11.4 ABR ABE ALS ABE mn FIZ BMAP rere 12.1 388% Python ‘Pit IMAP-~~ 12.2. Twisted ff) IMAP fit St: 12.3 SEAR Twisted 66 - 12.4 FARRER 12.5 HAE 126 BA FR 12.7 Ric AUR ABE 12.8 RARER AB 12.9 HARABH~ 12.10 Bsn 12.11 EST AUN BR ICES ~ 12.12 FECHA BA MOE ~~ 1213 AH F4BS SRNR AW FE3 BE FT Pen nnn ne i . on 13.2 fl Python 323% FTP 2) fe ~ 13.3 DL ASCH BR FR HE 13.4 SERIO ERR HE Python Mit ie FERRY | pest entenee8 xi 13.5 eB. ee ssssnnnenee 13.6 Ae eRIR so msssnensreeneenerceneneneetneicen 13.7 HiAl os Ms A os 7 13.8 BVI FR... v vee : vs 290 13.9 SERIES ECPI R 293 13.10 Be BAB BERE RAI sotntcianntneneneneen 295 14.1 SQL RG. . stim 9S 14.2. Python A) SQL snes 296 143 ite . so . 297 VA BUPA oococsnnnnninninnsnn 1.301 145 #% vere 302 146 RAIS . . sass 30S 14.7 FUHAB sss z rovers 310 14.8 fit Metadata a vs vs Leseeee seoove I, 149 GRRE BY . 317 14.10 BME v 319 #1SB ss 321 15.1 AEE A . sense 322 15.2 HH SSL BEEBE as 324 15.3 SR Python 1A) SSL - se soe seeeeesasonse 326 15.4 HEPA BEA SSL cssnosnnnn se 326 15.5 {HH OpenSSL........ se ssnnnsesee 330 15.6 EFT OpenSSL HUE ARH RUE PS se esesesennesen ssseeegueneennnnneennaneeen soe BBL 15.7 S84... 338 SSeS ARB HESS 316 B SocketServer------ z fees 341 16.1 {Hi BaseHTTPServer 341 16.2 SimpleHTTPServet ns . ws . 348, 163. CGIHTTPServer. . a sn sens 349 Python Mia PERExiv BS 16.4 SRRPDIN .. 165 IPv6.... 166 84... 47 simplexMLRPCServer 17.1 SimpleXMLRPCServer HEF snes 17.2 Sethen eh 17.3 (EAPRIORHE... 17.4 {iH DoeXMLRPCServer..... - 17.5. {8/8 CGIXML RPCRequesttandler. 17.6 SCF Mutticall Be 177 a #18 cal 18.1 BRCGI 18.2 BAR CGI . 18.3 RIOE(RFE Python #95 CGL 18.4 WEE 18.5 ABBA 18.6 ARETE 18.7 bs — SPREE MOD. 188 bert 18.9 {84H cookie... 18.10 eK 3819 % = mod_python 19.1 SBa tt 2 mod_python 19.2 SERIAL. mod_python 19.3. SER® mod_python #4 19.4 SHIEK... 19.5 SEFBHH A ..... 19.6 8X (Escaping) 19.7 ORABER IES 19.8 4 mod_python ‘fii sea Python FOS FEMA (este 350 355 36119.9 Hom SESAME... BH... 38 20 % forking 20.1 20.2 20.3 20.4 20.5 20.6 20.7 SHEARER ... HOME fork OO ces forking M9 — J. forking HR -38. ‘Bie REE AME BANS hie aA 21.2 213 214 ‘E Python 448 FBBRE.... BITRE MRA... BS ARR B28 RPE 22.1 22.2 22.3 22.4 225 22.6 Rl RE HEAL VO Sb HA NR Be A A WHE > master socket... CEH LALA Twisted... BS. | “419 419 421 424 sn 430 433 438 44 443 455 463 severe 467 47 476 480 so ABS on 89 491 Python Mee aA ALY1 abo} IER Fe Da 28Bs = zB SPARS 2843 IT 4S to Client/Server Networking Introductic ARABOR. ATH 612 fn] RO ON, AEA BRI TE. PRL A MEAT AA AAR. TAT. SLED AJB HZ GE AL TCPAP (Transmission Control Protocol/Intemet Protocol) . TCPAP ebrMEM PMX, EAT HAE A MH FHLB Internet SRA i 4 A AFA ABM TT CPAP (1). JR AE IE AS ER HR FE AS URERRS PHOS, AMEN CRS MAE Re, Bett. Je — AE AHIR. ACTCHE FUME SHEE TCPAP AB ALM TEA. PSE. SMT TCPMP By RESELL AB Cs JE am a EAS URGE 2 (a) HEA. HURST PAS Internet ti (Internet protocols -Z (il fH}: TCP #1 UDP. Ais. OK Bl—-Ae Ay 0H Python BL. SEVEN TCPIP PBS EAR 2 L-PPT LAE) AUB 3 COL AALAE) . 8 4 Welbat PEARIM SP4H Tb % ASE (Domain Name System (DNS) ) (HEE. DNS STE RE ERGY ALY FR RFE. BLS OBS PT ACR UE, ak ee EBERT DLRD FA T- P3K, U2RTLGL 1.1 BR TCP Bit TCPAP 435 fF “EBIX (protocols) MTSE. “NAS BH A HEAL TCP HAR. Internet JC: ESE ER Bb REA. Gil: ZEN RHR PRL APE TCPAP, f8E BD 2th AF Mh SE TCPAP Wik: traffic RA. LH. 2M. AEFHS, TRLAARKS EMTS, MULRTD AGE” | EI ERB A SH ACE, Python (id FEM RY4 Fi SPRARMBNE FRASFF. 0 Web ii) A128. BOMBA CHAD E-mail BF, TGR Aad —%—H) Modem af DSL SEERA RM. EMAAR TER, MAU, PEERS RBA TIE MRE. DREMA MER ER, ANCA RTRMK, BOTS GERM STR, Sh SL oe RP FRE « Ha T AIO, TCP HG LI BE AK 19 RE HR A OA AB DE Internet 4S MC VBA REEF Rta BEL) » TREE LD) TRH AERA RE. NL} RENAME BAL. Internet XE RRS ALAR > HAT TA REAR PEE (bit). TTI (fe a tT LA Peat ae ta 1440 Sit aT SIE Ma Bah, TCP AE A Eee BL. PL, TCP REBEL. HEF TCPAP AS, GOLA AAPM IP Hat, XP OP $A A E AKAL 192,168.11. AR Ai T AA ALaR AN IP HHL, (EMMETT LET FOK, TCP FRE ME SEAL LIST AE EHR. ON, BARS ZEAAITOLEH) Jane ALR RES. MORALE LETRA TRE RA Web BK, ARAL ARE BEAN SECRET ERT AN, TCP AROS. EERE ATES, CSAS, CHES, OBR RRR ANINEY, TOA RaRLIR READ. TLL, 4 TCP Me BEER AA EHP IP Sth A OB eo RAY, RAFAT IP SEARO SG, TCP BABAR T HE. (LE Imemet AULT ITIE FARRAR, TAP ice — stn 65.215.221.149 WEA AE. ERASATRA, ATOR DNS. (04RD AR AE OT AR, HOT AE ECLA IP HbEA AY EY DNS, ‘G0 www.apress.com. DNS 2H beGt—S IP Hhk, MATT LIE ITERT . Python CEE PPE AM DNS 2, URS RRA EM EEE. HRT. HNRIRRER RObE, UBM 4 BMAF DNS A. 1.1.2 OOMERE READY EAT ASHI RS MRA, ZE Internet LAGEMGEOT TE SHIRA. HGRA RE HARE TRE: Modem AFTRA T MAEM LAE, EAM RUE RT Python PIS ti FEB1.1 WR TCP Bh 5 MBH: FARA TOP RMB: -MABORIK ET aK: Bai TEM PoE 8 BLES IT TCP SEAS AREAL, IER, PR Ee Tl, Re Se Ar HAGE Sh AS A SR AE oR JL I AT Oi RR RR, BM LAE eR. RE TL FAG OR UE fey, dP BA OO, ALBUS A MEMOS IR. HHT St LORE SOOT AVECAICHE RP APRA. MRS ANAL, tes AU A A. AT BHA AMEE A, TCP Se SER Hy EC) AS A OF KR REHRAMER—K. APRS AMMEN, HORT RRA SHG MU. TCP SARE, EE Aik, SE ST eR ERE WT. FERRE — Miia, ArT Bi A AMY ES ORME IR, TCP BEI — MaRS. BO SEE VES, GRAAL, JRE ME RHO RH. FIR, RKC BIT HS OSS, MAR ARSRER. 1.1.3 2B ATHRAAACA HME ONSTAR |. AMER SeU RS TAM Bo EMTALA EIN DSL SALIBA], HEAR ET TEML ATA —7 Intemer GE, IRE SLURS. ZIRE. AE A BAR OY BM. CE NIETO I, OR BHT Ee SE SCBLAPS es RMA Ze — RR EFM. HE Imtermet ff Fe i i EF BA Pd AT eB (VERON RE SE. GERPLL MEE > ( Gitin: traceroute Al mtr) KAW AMG ALE Intemet + feat TAR SHSM, CORP. SRR, (RT ETREER, Hest TER AIRE, MARNIE. TORO MER LAMBS MOR. A MTRM MERE RS RAR. Python PIB Me PEMA6 Bi SPREBMSENS 11.4 RF HERMAN — > RRR RE. WALL Intemet Efe, Balitst SIMO, FMEA MSHA GI, REA SARS E) AE BYE. REG ATT EMA RAS. ARR, RRAAAT IN. HiMA 2000 A, fF $6, TEPER www.CNN.com FEF, ARAL Rahs BA I A A, TE TERRI, AKT EMT (LRATITOR, Ze Intemet (6 — ik EGE. SE EE ER, CEPA EN RRA DRA. HERB SRM SLM, ee RA ARE BREN ERE AMIS PHBA cm-ré + Rael ++. HEAT —NPE BY) Gee BS FE EEA AE TOE St LR. HA, MRL AMBER www.Borders.com, HECTARE BMT, BSL, MEM eee REMVEM, WERARA RP EMG ES. BF AN CR RAW IRS INR ORF “ORT AERA ES we HY Secure Sockets Layer (SSL)#! Transport Layer Security (TLS). SSL —ARJEE TCP #8208, SREFRR “Vio CMEEARS AB YATE CTA Ms RUE YE Ce ADEA iA). OUR CT UL CAA ABN E A AUCHVME) REUSE RAE TERT RMIT F, femme PA UR ARE BO TLS (EAI SSL EMAIL, RA EWNUEK: (protocol stack) P. EEE OBOAEELT, HAVANT ERNRAEREXRE, BVO Aone SRA AHR. 12 ASP MRAM TCPAP 215 PA/ ARS EIS OS fe ABLATED. ERE PVRS RRR, AR EAE OHO BRP MMR, WR, BURIED eA, Big: SCAT IF — 4M AIF ] www.google.com, MiMi WARS IER www google.com ft} SS, RU I”, RD" RANT. EMRE — HE, HE ‘MRS TELO Ge Pe wR. RR BP SURAT AEE — Oh, AR LR He REE RY te Python FOS i FESR1.3 188 UDP In 1.2.1 RSBiRiROS SSR BEM MTC, TARR, Maen IP bk AD SOS. HEA IP HAR CR BML DNS BREA F] www.google.com fH) IP HAL) , (HARE RK PFS 47 HERR Hi Web FRG BRO Gs ERP RABRAT, RE BERRAK- TRA BAEOROS. AGI, Web ARS BECK 80 FEO. PFLA, Web itl KBE SiH EH www.google.com ff) 80 3 ARAM. KL, CE www.iana.org £4 — th ci AF PAS ht 5} BEB AA Le Internet Assigned Numbers Authority, IANA) SPR) 877 GC PACHA FR. TE Linux BR UNIX KP, VIALE feve/services FRELX THR. WREST — SESE, CRAB E, RMB —T EE 1024 kK. A OLE RARE AROS. SAT UR RRRAK RR. HOSAKA 65535. ARE, GE Linux Bt UNIX AGL, ARR RARER I— )F 1024 HO, FRADRPE AE TGR, (ELEY MEARE — Be Re HE FL NTO, SIRS ARG ANF 1024 CRO, CUALRAEE ANS OER. 12.2 SPmmos JEM, SPM O SAAR A. ALF. SPS aR TE RRL BR — NS, EP MNRRA TA MELT REA, BHD ae” OS, SAR Be eee TERROR, TREAT AOS, SUR SREB L. ilk, MR RAT LA SEE ERO SAR CIE. 1.3 #BR UDP BIA HA, $A) RAEI TOP, RTT — HENNE EAR: UDP, EAR ADRM— REAR MRK CLEAN MM. CREME. AAR OUCRI RARE Se RI, Cae PAG PRIE RAR ALS RM RE MOLE, th ARE ORUE RE ACEH ee — Uc, LEAR RE ORUEMC BING FE tk FRA WREM RH, (LEER RA ee Reo, WL UDP: PRACT MH MA leew. Python FASS FBR8 RAR SPBBBMBNB UDP PLA, AEA LI MARIE, FLUE TCP 1k, TCP BAK ARE AEM, Ti UDP PARRA AMS, PUES CARRERE. JE UDP SHER PH RS AE I TC, UR A RE ke RT, A 98R)" UDP DEKH DNS Rt. ARP R ERE —MER AIR, HB) TP MS, UDP TERI ARAMES. UDP BA RALTEMETN SI, Bi» UDP REBRERH—MAR, TO TCP il FPP AEE EA. BONES BRREAE. SUR KHER, Gd NFS (Need for Speed. Hii KE) Al Samba th KSABIT UDP. BANAT, BUH TCP Gi UDP MUTE SAE. ALA ETAT MEA SIRT A RITIR, MELIE AT EME — “MRE BAS. SIKH TCP, OR: © EE TARANEH, CURE A AR eM TE RM ik © CMDR BRL—NARARS SHES. © CERERSHRK, © MRE RGIHERETUS DA. SERA UDP, WH: © EKKAMBALFHARATACE A BOHEME RE ER, BaeOTULA RMR He I A RR © SHOR BEAR AIS. © BRERRRUMBLIE. © RfeikiR>— AHR. UDP ARLE Mal eM Adee O4KB RIB, HAA ‘UDP fii IKB LF 38. ASR DNS 9h SeATICHLANO LOT UDP, (HJESE 2 AOE 3 ERT een ares 7S UDP RSH. Python PIS FER1.5. Python [eS oer lo 14 BeMERMAUAM TCPIIP 45-41 i AE AY LAE 7S Fl cA SB EZ ER RI LOT: LA SR CPPP, Peer-Peer Protocol) HSH. SHI. DSL HEH. cable modems (NM AGE TER. BRIA RANT AN SHER, LEE AAD A ORAS, PR ASO, BLN: RTA HK. DPR TP RMOLS, TIC, Gl: LAR, ERA DER MEA SPB. FIRS, FAA BAI MSR SS eH STIR EE. TOE YEAR & EIR TCP MP [2/4 DUAL SOFIE TE EM, (SAAN RABAT LS TELA ETT HEE AR TE LISELI FP AGA DN HE BE A a8 HS A PE RO. A MTET RDA PANE HUE, AER AAA HR, OTL FUT ATES A SL A AiR TCP/IP EPR EL ACI DE SF BLT — az eC LI UP SL. EG COPLEY, ROAR HPL ROT UL, ANB AIRSHE. ZE Intemet ACHAT RBI As» RDS BRAK BI — 7h AH RR RB AT SOAS RE AHI, AILSA. ALR SH RL BLA AY CAL IP SASS SUL CARAT RORY) AR ASROAGTA.REA A Be 2 EE Li. HORII» FPARON LCA ASTRIO, BBA 4758 Abs A he OR, SAA ZW A LA THR Lee HHT LL PR A. 1.5 Python RSS Gate Sil Python ES AUBALP INR, ES RASCAL: A ECRENEIL OT DLAI Python PSSA MeN Clin HTTP Bk FTP) KSA, MATURE LS. RE ERAS A BONS, Ge Ae RO HC mn A TSR ON ERAT TERA aE. Python FSS EASY10 BiB SPMBRMSNS 15.1 RRBO Python $8087 DRIER Socket RNA ATE, AEEMUIT PRACT LL ye GRUTBA AMD. CERT HATER EE RS, GON: SSLTLS. WARE BSH CBAREAREY, BAGLRM Python MH Socket MAA C EKA. ABHB—M SERNAME. 1.5.1.1 BSS PURE TEE FRM MAY Python & PIF: #!/usr/bin/env python # Simple Gopher Client - Chapter 1 - gopherclient.py import socket, sys port = 70 # Gopher uses port 70 host = sys.argv(1) filename = sys.argv(2] 8 = socket socket (socket .AF_INET, socket .SOCK_STREAM) s.connect ({host, port} .sendall (filename + *\r\n") while 1: buf = s.recv(2048) if not len (buf) : break sys.stdout .write (buf) SRR HA P MME REIN. TLS TT MS PLA EAE. EBAY Gopher AL, FH Web BLS ATE Internet LARMHUTM HN. KPEERERT MSTSR: EMS FUSE, SUN ABLE RAR SC THES SRAM A. CMWLWA socket. socket () KEW Socket. SMERRABE—7T Intemet socket Xi#{7 TCP H(i. HH, VRPERDAERALHS. RRA, £ BRR LATER. Python PIS tei FERRE1.8. Python Pee? " BA GE TF Si AE AY TRY OF OR FW gopnerciiont.py. BH HT AS. /gopherclient.py quux.org /+ {45 GH] Gopher HR aH A RAK MTR. 15.1.2 SRNR BAKMITS, RE CHAMAMSMA MITRAL AME. BLAM. Python 2: S13) Br HYAEN IR, FPLEAT MRA ERY Pm HRA. RRR — PARAM EALS,. ln $ ./gopherclient.py nonexistant .example.com / Traceback (most recent cal. File *./gopherclient s.connect ( (host, port) line 1, in connect + (+2, ‘Name or service not known’) Python Zefa BHRIFM 4 — socket .gaierror RH CARER, HCMC E EE ARAL) « LDPE IER AREAL IK TSE, ATDLARAR AS He it FETT ETA A AR LAME PR, ibe Bese, # Simple Gopher Client with basic error handling - Chapter 1 # gopherclient2.py import socket, sys-argv[2] Socket . socket (socket .AF_INET, socket .SOCK_STREAM) S.connect ((host, port}) except socket .gaierror print ‘Error connecting to server: ts" te sys-exit(t Python FEE ARE12 B18 SPRARMBNB s.sendall (filename + *\r\n") while 1: buf = s.recv(2048) if not len (buf) break sys.-stdout .write (buf) SAAC RAPER AR EEN BE, EA, ECR SR, RAMEE RIMES, BA AMA MIE ERT, CHARMER s.sendali(). SiS CBA PH condi) AM, EIARRIE RABE RIGS» CFEIE UM 8 2 Fl — MAR ART A BE ABE BG. Python th send() HM. (EE sender) MEARE. WRATH, CAMERA. AR, MRO BRA. 1.5.1.3 SCPPAERTRR Python AF RERBLMRM HH: readline(), write(). read()%. Python MEXR SEPPRISCHPSER $e. Socket RRA AIDA 1, ME ARLE See RPE AE RHO PRT Python AHA T 4 make tite () BORA ROO EAH SR. aE FAR LDRE MONE, aX KALARROES: #1/usr/bin/env python # Simple Gopher Client with file-like interface - Chapter 1 4 gopherclient3.py import socket, sys port = 70 host = sys.argv[1 filename = sys.argv[2) 2: RAT RT, ORME LOH, RELA. BARR ARR, Python FUSS RE MRE1.5. Python Siesamere 13 8 = socke! F_INET, socket .SOCK_STREAM) s.connect (( port, fd = s.makefile(*rw', 0) te(filename + ) d.readl ines ( sweite(line) SEDALIA AUT AIR APES TSE, BADER makefile ) HM WY. RPM PASM: PANTS ARE (buffering) AMES. HRPM BARWGRAR, ASMABERS: EAA, BERBERS, PLE ‘ow’ 2 EE SHEMALE, HENS RERM MEY, COSMO, ALTE EW ORKLE. BERRA BAS, CATR TATA: weitec) Al 0+ EMR Re RN Se PATA — FEE. 1.5.1.4 BAIS BRIE BR—A+ Python 2 PU FENE A FELT 20 45 e459 FU. Python $555 3 RPE AAR itn: At /usr/bin thon Chapter 1 - server.py # Bind to all interfaces er, tLsockopt (socke B.bind( (host, port}} s.listen(1) print "Server is runnin & port Python OSS REPEL14 BiG SPRBABMATNS waile 1: clientsock, clientaddr = s.accept() clientfile = clientsock.makefile('rw', 0) str(clientadér) + "\n") a string: *) client file.w: elcome, client file.write( Line ease ent -readline().strip() client file.write(*You entered #d characters.\n" % len(line}) client file.close() clientsock.close(} Lien! ERMERBERS. WEP —P. RRA socket socket () BRK BL—*F socket. RH, AT HEM MAS TIATAT, JE socket HMMA ALM (reusable) . iX ARETE, PAA ST. Fe ER TH 51423, BAT EEME—TAF 1024 AHO. EAR MEER, ROR ER BERT WER. BE, WA listen) RM, RRHCRTRERKAS MAMET, RRA BRERA TSRLA NER. LEMRS BS PROT. EEGGRR accept () BRAT. RFSEERT —PE PW ESR. BRTER SRE. accept () BEA-MAR: — MBER PMY socket AI HOME IP Hut. FS. ERDF HE, EAT HRMS, LER L EAN ER, ARS RE FRU SPHERE, PORTE TIER, SRS, RUE RIAR PH socket. RUE, RA socket LKB, SUP MHKMERS BOSE RES, TERS SRS I OER. SAAR R MAR, UARAKAMRA socket HR. SAGE — FATEH. HABBETRS BIE. HIER AOTIEN server.py, Hit JEAT— PM. /server.py BIAS, RIG HIT — THAR telnet [FAAP Ht BE localhost ft) 51423 SHO. ZE Linux RR UNIX RAF SE, Bi wine RAB LAF § telnet localhost 51423 ‘eying 127.0.0.1.., Connected to localho: Escape character is Welcome, (1127.0.0.1", 48665) Please enter a string: Hello You entered 5 characters. Connection closed by foreign host. Python FA Ge Pea1.5 Python [nleSeat= 15 EHSRM, RRAQAWS Telnet HX, (HA telnet SHAE fa. ATR AT ABS BAIT LET. f ATT AFAR: HEA ABD 3-H, LADS S AAI 6 BSP PED ESAT US BAIR, 15.2 BMe#O RCH BMAF I TONER Python #85 ALN, Bet ees HS) te wa B iX, fiid: HTTP AR IMAP, TMA HEA TMS ik A REAM AETE. Python HALT RS PL PR ENTRAR LM LENREES. Hin, THORS RRM HTTP ‘header, Python ff) BRSMMERAT LY. HLL, CTR, FOE HIRES ERT. ATA F IND T Mf BCR AIF AA] Gopher HRI Bia (5 ‘HOFF BR HR SH EAE FREER RA #1 /use/b) # High-Level Gopher jenv pythe Chapter 1 - gopherlibelient.py tor (file, host) ines(): sys.stdout write (line) WAT TEM! gopherlib WARAHRI socket MER. Mb, CRBC RMR I send_selector () ATMA makefile(). Python i654 HA RAMGR. 2 T AEE URL, Python #2 0RHy SIR ATLL OOH ESRLLAH U-wIif, RAAF: Python HEB Se FE Hi16 Bie SPRARMBNS #1 /usr/bin/env python # High-Level Gopher Client with urllib - Chapter 1 - urlelient.py file = sys.argvi2) £ = urllib.urlopen(*gopher://tsts' % (host, file}) for line in f.read : sys-stdout .write(line) AF EA OT SRA R—F URL, HEB urllin. MOUS IUTE, aaa FAlurllib KORG ALA PRA. Wk FM: #1 /usr/bin/env python 4 chapter 1 - Download Example - download.py import urllib, sys £ = urllib.urlopen(sys.argv(11) while buf = £.read(2048) if not len (buf) break sys.stdout .write (but) PEE MERAH download.py, IPE. /download.py gopher: //quux.org/ AAAPATF AOR. RE, CAO ERA MAL. Gin: MALLE} web Ay FRMC¢r. TE Linux Al UNIX RSL, WATLGET Ko: -/download.py http: //http.us.debian.org/debian/1s-1R.gz | gunzip | more EPA TTR R EER, BABETTE. Python AS i FEH RY16 BS TCPAP PMLA FEMALE, I: modems EBM AILL AMY. EPRI EE — AY IP HAE AIG BRK SPA. Mie Shi A ROT. SPE, CARE RSM RSE A ENS TS. FA EH SOR HM PL, TCP, OTL OT REM TEMS, UDP, FAP ds HHL FERRE. KEBAA Python MSMR, BAA CRT, BAR Mery RRR oe CRAEMUNL. MHEG BRITA ASL, Python s(t TSiHAY socket 4A, i CHA BAF ARMAS. Python Mi MRE HR= z SS Pili Network Clients SERS EARS HEY, SERRARE SASSO RAE. EARP, CHES MITER PARLE HILAR Python BA — ATARI, a PENSAR R—TEB AEM Python BURMBIR, ARAM IER A. 2.1 HBR socket socket EMRE AL VO RRA, CET LUE EE FOWLER Z [a] aE RU AT AE. LO ESHER socket MARR LAMA LM, BA- FEMA LAB. NTA (EAH BY socket, FST BSD UNIX JHE RH. 4 UNIX RL, bein BSD, AEA IN, RG — RT IN RRIBA, BP AI open(), readi}, wrice()M closet). SCAPPR 7 —ALEIE— PIPE IE PLC HE BSE. ERY SOY SCE RE RS, HELA — AT HT CP HE IO ELD. BE 8) iA BEIM AHA socket — 8 fF, TORS ILA RAIN PEED socket i T(E FALE, AP socket Ft i'r (8 FARMER BRIE RR ALTE HEIN HSB, DAR A ALAR EAA ae FORA. PRAEA TH, socket BULB MR — MAEM REMIT. CE UNIX SPREE, read() write (). dup ()y dup2 () A close () iX PEN RE IM FH (Bh bate CER AF ADHYE Wy socket LHF. FRB AAR, PLIAGE MUNG ESE Sik. RR ES TCP ER, WRT. socket MUMATECE MEASIAIIN THE ASK. SALON SEM OE ALIBI. socket (77H. HEB SCE Fi open ( BB BOKIT FFA. {8 socket AAI AY socket () BASORAITIN, JEEP AVA REAM EM, cecv (Ml send) RAT RAIA read () Bl writes) BUA. Python BMRB RY20 R28 MBER send () Al recv() WALRET socket SIME A MH AE. Python idiitt socket HIRHE HL MIME BBE socket FE KIBEC . ETL socket AIBT OR, 57 5 UAL GN BMA 2.2 $217 socket HET PEER, BIL—S socket FEATER. He. SERB — Tew socket HR. JOK, MAH CERA RSS L. TEREY. socket RAVI, QM RET TERA AST: tek ADI AR. LAE HT THT PRR eB. PATOL T 048 IPv4 (SAVE) Internet #RME) . IPV6 CHK Internet ‘#ME) . IPX/SPX (NetWare) #1 AFP (Apple X4+3E%) . SIAR Auk, AMAA IPv4, pid RMSE RA Ot ae. AP AAU Imemet ifs, MEER, BfME LAE ar_over (Al [Pv4 Xf BE). BN RK — MLA TCP iM) sock_sTREAM BLA 7 UDP iff) sock_DcRaM. Mt F TCP BHM. RESET socket 6, —ARAVARUR PERI IRES: 8 = socket socket (socket .-AF_INET, socket. SOC! JER socket, E-RBBLK-T uple, CUSALEMA M IP ALAN. 4 socket — AR FLAIR PEALE: s.connect ( (*www.example.com*, 80)) FFB — NERY PA. CART RRA, GAARA CEREMAT, aa: 4! /usr/bin/eav python 4 Basic Connection Example - Chapter 2 - connect .py STREAN) import socket print "Creating socket. 8 = socket. socket (socket .AF_LINET, socket .SOCK_STREAM) print "done." Print "Connecting to remote host...", S.connect ( ("wiw.google.com", 80)) print "done.* Python FAS FERRE2.2 BUT socket 21 JEST EE www.google.com Lit) Web Higa, HER TEAURAHER. Bab. BER: CHEM connect () HAH LAMB H IP wat, # Python P, socket #44 connect () SAAB BAVA DNS FORE 8 SDAA IP HE, 12E aha EA, 2.2.1 SkwOS CALE, BLAM T AACS BO SOR. KS RE RA ASI RE PETIA, MEATLLAI—F, Python BY socket ME— getservoyname () MBM. ATLA Rabie arial. 7 UNIX REP, MBA setc/services HR FRELA PAR. ATEMAMIA, GHEATEM. PNA, MOLE —PEA, HldI: hep RB OS. FRR EN, CRO ZOOS. #1 /usr/bin/eav python onnection Example - Chapter 2 - connect2.py 4 Revised import socket Creating socket. FLINET, socket .SOCK_STREAM) print "Looking up port number. port = socket .getservbyname top") print *done.* print *Cor host on port 4...* % port s.connect (( » port) print *done.+ ‘Hi: ABA RETA RAM, BLAER OF, Hider Traceback (mi recent call last}: dation of Python Network Programming Mochi \1590593715- 1\2\connect2.py", line 11, in ? vbyname('http', *tep') socket error: service/prote not found \author\Fou port = socket .get Python POS Se PELE2 Som MASP AR MT PEATE, CARRE HTTP 1A 80. RAT aE ROSSEONES?, GAYFROARY, LAP RENT RAO RRA ER SH. TERT, BIT TCP, BUF “tcp” BAPE socket getservbyname(). WR ‘EFF UDP, {80K “udp” RACH. 2.2.2 socektRE iS BRIT —* socket €%, CRATUMEMES HAA HER. FRA BIF HRT SETAE #1/usr/bin/env python # Information Example - Chapter 2 - connect3.py import socket print "Creating socket...", 8 = socket. socket (socket .AF_INET, socket .SOCK_STREAM) print ‘done.* print ‘Looking up port nunber...", socket .getservbyname(thttp’, ‘tcp') print ‘done.* "Connecting to remote host on port #d...* # port, ct (("www.google.com*, port)) done." print "Connected from", s.getsockname() Print ‘Connected to", s.getpeername() SETAE, CHARAARNE. B-HERBASO IP AOS, AA TEAL HY IP HALAS. IE 1 A, TPR, SALERRO CL RAEL) . PL, GIT RRS TA EAR, WO SBR. Ra: RARE OMREAMR, BRATR—T. Mkt T: ‘Traceback (most recent call last): File *D:\Biz\author\Foundation of Python Network Progranming MoChi\1590593715- 1\02\connect3.py*, line 11, in ? Port = socket .getservbyname('http', ‘tep!) socket.error: service/prote net found Python RUS MAE IR2.4 SINEER 23 2.3 FFA socket {5 TRE socket (ih fi CARE Waa eT. AAD E ik AH RR OT AR T . Python HEE T PHL: socket FRALHERYR, socket RIL T StF RBH send(), sendto(). recv() Ml recvfrom() WA MRO. x PPAMBALIET read(), weite() Bl readline |) 2H HA Python HO. AEH RA ROM, socker NRHA. GM: EE SMURN TENA] LIF PUM RS AT (RA UE Ee A ED. ROR RA, a ET AN ALAR MM Set. 4S UDP RAF MIETIR, socket IRAE RAE ATE. RMR AF AHERN, BI EAB ESE HAY readline () BALE Bhs fede AE MONET. AM, PROB —ALA A TCP HE EAE, Bt UDP MEHR TTA EAE. SARIN Ay TCP XERRAYAT AR ARHERSCPE, CARER ONE, JE EL RIOC PE RE UP WREREHN. TT UDP HPELAMRUS REE. AR. CA BOSE. SICH IR SUR AIRE EE IEA 1S EEL, PUTTAR. EAE UDP AS RUE ABARAT AP HD. He AED at AE EY EPEAT RIA TER | RP OB, RR AA, OER RAMA AMOIT. 2.4 SNBSEIR #E Python +, “SPS WIRERAIEHIR, socket REGS A ESM . AIRS AT RAS Sie AFAR, HRM REASAE EAN. He, RELA E RIM, RE, BELAHEH A (HRS BEL. RTM) TERE. JUHA RR UREA. Blin, FRR, EAT, ONT eREE RACKET PR. Python MSA BIERE24 #28 MSSPH 2.4.1 socket AAAI D SPeE A LEM. PA FA T SALE socket RM, tue — AWE. RMAFEE 3 Ot Se: —VEMRR MEMS, —MEMI RL AROS REF, —TEAUES RIC. APE LSS, HRPTR ICS LMA) HTTP IR, BARR. ee EE, CEE RI ERAT. #1/usr/bin/env python # Error Handling Bxample - Chapter 2 - socketerrors.py import socket, sys textport = sys.argv(2) filename = sys.argv{3] try: 8 = socket. socket (socket .AF_INET, socket .SOCK_STREAM) except socket-error, e: Strange error creating socket: $s" 8 e sys.exit (1) print 4 Try parsing it as a numeric port number try port = int (textport) except Valuerror # That didn't work, so it's probably a protocol name. ¥ Look it up instead. try: port = socket .getservbyname(textport, ‘tep') except socket .e print "Couldn't find your port: ts" # sys.exit(1) + MITRAL MTA ITF, TUS AED Python MESSER RY24 WBBIR 25 try s.connect (host, port)) except socket .gaierror, e: print "Address-related error connecting to server: #s* © sys.exit(1) except socket-error, e: print "Connection error: 8s" te sys.exit (1) 1.0\r\n\r\n* & filenane while 1 try buf = s.recv(2048) except socket-error, e: prin eiving data: ts" te exit (1) Len (buf): break cdout .write (buf) PERN PEFE PFE AE fa) IT ahh — 7p SP: AEP HT Be A tH RS ALIFE Python fH socker BUIBR b fT. CMRI CET I 4 PARE: © SAR VO BMRA MY socket error: ‘5 EWAN AA KM socket .gaierr SIURALAL IRA RAY socket nes © CRI IS HM nerrno MIX) + © Ste socket L8H settimeout (1 fi AEEERET HIM socket .t imeoue (#748 Python 2.3 WE BR) « Python MUS REA RY26 B28 MSS TEM TOE PGE RR connect () MA. URE MEENA RR IP HAN, ELAR SS MASH: WREMSAMMAME socket.gaierror, MR RTA EMAMBMAM socket error. | 2.4.2 ems SAF PHERARA—TOE. ARENT ME, CLARK ERS, BHR SBR TER BAe LGR. ERP REE SREB S & PMG ROG (8), MGR AM TTER, SMS PB. CRT F PH, BM recv() MAA REM AE SE (HORS RCBRAT ER . BF SMAI, KERARS OT. MTS REAR, AN RES LRM SELES BARCODE ZABEL. A, ATA RE AK sendall () ROVE LE, Mb AT Bl. ATHRETAB, AGREE, EMA shurdown() RM. PRS ORSAE ET NIAL BE, LN OUR HA RR MWA MRF shurdown |) BANANAS 5 PAM PROT RT IAF, FRR T —MIGAL shutdown () SRR CRABS B56 SUBIR BO Ta #1 /use/bin/env python # Error Handling Example With Shutdown - Chapter 2 - shutdown.py import socket, sys, time host = sys.argv(1) textport = sys.argv(2] filename = sys.argv[3) try: 8 = socket socket (socket .AF_INET, socket .SOCK_STREAM) except socket.error, e: print "Strange error creating socket: ts" te sys.exit (1) # Try parsing it as a numeric port number. Python PIS GARE SAL2.4 AMER 27 try port = int {textport) except Valuezrror: 4 try: port = socket .getservbyname(textport, didn't work. Look it up instead except socket-error, € print "Couldn't find your port sys-exit try: S.connect ( (host, port) except socket .gaierror, e: print ‘Address-related error connecting to server: ts" 8 e sys-exit (2) except socket error, P sys.exit(1) time.sleep{10 print *Continuing s.sendall ("GET &s HTT2/2.0\r\n\r\n" & filename) print "Error sending 4 sys.exit (1) te 8. shutdow except socket .error, ¢ nt ‘Error sending data (detected by shutdown): $s" 6 e sys.exit (2) while 1 try: buf = s.recv(2048) except socket.error, e: print "Error receiving data: ts" 8 e sys.exit(1) not len (buf) : sys.stdout write (buf) Python HSFCA28 Sem NBER RETA AMES AMI Web ABRAM 3 RP MIM IT) . RT ‘PRT LAE Sai A EE RR HEN «ER RE RA BL SEAT AE AREAS). HS OECE, BOERS TEN write (PERE REMI, BS ETEE AC PRU, REESE AEMBAE HY shut down () SREY. PRL Ia ASE EIR BEAL AE 7 T= FE 6 FETA EMS, SPORE ER RB CRE TASTE A KMRL. Glin: 316 HY pasichtep.py: FEAT CALMNIEATIY Web M28) IF LCE 10 OHARA) LT 10H, SWEAR RS EMR, HENS BI AMAR. FG AE HH: $ ./shutdown.py localhost 8765 /test-ignore.htm) sleeping... continuing or sending data (detected by shutdown): (107, ‘Transport endpoint is not connected") WICK, FARE senda () RBGMEM, THEE shutdown () BBM! sendall() AACA, (LIE shutdom 0 SH, PCB EE Hee 3 El — NE HR. SER ATTN, RARER AL RRR, AURELIA AE EMME, RAW, Python BAAR R A A LT A AED REPATEEU DUR, TETPARIURHR, EMEMEAT Rk — URS BRE, AOE US 2 Je a shutdown () ROMCUAT MALS. REEMA FRAUEN: Se ERR EB PR ANGER, FORMAN. CERES ZG, HEIST URE, ROPER AEARTE TAT AY SPETER AR LARNER, BORSA TEMSINA T shutdown () MUG A HEMMER Bb. URAL AE aE, Python AY socket ABA VF- EF» HAILIB S BREEN MR. Python MAS tei EMH24 IB E 29 2.4.3 MAAURS RAI TEMES 1 PAB, BTL makefile () HELM socket AB—-TRABMR. She hy ANIA SIH SOREN socket, PFLA EHC HIER BPE MEW AD socket AEM send () A recy () ARP EME FES. Fi A a AF SCPE FRY BAA shutdown () PRR F #UJusr/bin/env python # Error Handling Example With Shutdown and File-like Objects - Chapter 2 # shutdownfile.py mport socket, sys, time “INET, socket .SOCK_STREAM) cing socket: as" Be numeric port number. in't work. Look it up instead byname(textport, *tep') print "Couldn't find your port: ts" # e -exit (1) ” d error connecting to server: #s" 8 @ Python Fb tet Bes30 B2m MBS £4 = s.makefile( print "sleeping..." time.sleep (10) print *Continuing.* try: Ed.weite(*GEP %s HPTP/1.0\r\n\r\n" & filename) except socket.error, @: print "Error sending data: $s" # sys-exit (1) try: fd. flush() except socket.error, e: print "Error sending data (detected by flush): ts" 8 sys.exit (1) ery s. shutdown (1) s.close except si print sys.exit (detected by shutdown): #3" 8 € while 1: buf = fd.readi204a) except socket error, e: print ‘Error receiving data: sys-exit (1) if not len(buf): break sys-stdout .write(buf) ter te REAAAR BH. WA, PERM lush MWA. ARAL RE, Bet makefile () MARCUS Aiea (buffer) , HUM AOAN, AIR AAR RATT Be, WER. AACA FIAT sond(), MHBAPEFM. Python PIS MARY2.5 (FR UDP 31 (ER ALAR TM RAMA TRE Ha, Ae LIL ARPA MURR, ARR A LAR AMORR. Sek, BER, BEM T maketite(), BARE socket MBM. makefile () SBM RIAA shutdown () MIM, ATLA AERTE RNG MY socket 3H IHADE - 2.5 {FR UDP JES ALk, RH ARE RRP TCP Ha, REZ Sb, HEAT LE UDP. UDP ih 48 LAG SPEER BA EAE: AS A 2s EAR A EA AL NS fi. TLRS — MAIN UDP & Pi: 4! /usr/bin/env python # UDP Example - Chapter 2 - udp.py import socket, sys host = ys.argv(1] textport = sys.argv[2] 8 = socket .socket (socket -AF_INET, socket .SOCK_DGRAM) # That didn't work. Look it up instead. port = socket .getservbyname(textport, ‘udp') s.connect ( (host, port)) print ‘Enter data to transmit: * data = sys.stdin.readline().strip() s.sendall (data) print ‘Looking for replies; press Ctrl-C or Ctrl-Break to stop.* while 1: buf = s.recv(2048) if not len(buf): break sys. stdout .write (buf) Python 11554 FEA HE32 S28 MASH RAF ELAS STEM: —TENSA—-TRE SOROS, CHER B, RAT RREMA-TEREOLT. SHR, CRAAT—-TARBARSHAS. BWI SORT ZAR BB GER IESE, BTEL SRE EAL Cwrl-C a Ctrl-Break RAUL EIF. kA (MFR GA BAR GEES 3 HP UDP MRS BIT: $ -/udp.py localhost 51423 Enter data to transmit Hello, echo server. How are you today? Looking for replies; press Ctrl-C to stop Received: Hello, echo server. How are you today? Traceback (mos File *./udp.py", line 23, in ? buf = s.recv(2048) Keyboardrnterrupt recent call last): SBR RE—F UDP fA, B+ UDP A. SPRY (SU ABE) . Bi, CBE Cul-C Hk, REBT Keyboardinterrupts TERRE HEA TCP % PHB BH. FFE) ATER socket BESTA, “FEFPIRJH AYE sock_ncraM, MUAGE sock_sTREAM: FRA PPR RET socket # (EF UDP HMA. TAIE TCP. BOK: Ht socket .getservbynane() AVAL FARM UDP WO, HAE TCP i. —/Ni FE POR OLAS, ATLMMGE TCP (EAI 119 WO, —SE276 FAY UDP RRA Oy AR —HO Fas BEF BDL E Ss BBY ZR RE TEM «I AE Sy BSA BA SER AE. A connect () MMALR AAMT HONEA. FIN, MRM RETR, Ra PUMA ER, BT ATU Na. Blk, SOR EHR, fait, BAKE Cul-C. MMT 3 BPH udpechoserver.py KMART. RAHAT ./udp.py localhost 51423 JR#E#&% 4 COLA UDP USAR SS FbS, (EA UDP FT LURAR AIA connect (). RRA: Python WA GFE HRY26 Ria 33 mn # UDP Connectionless Example - Chapter 2 - udptime.py in/eny python import DGRAM) ndtot'* print "Looking for replies; to print “Wrong-sized reply td: $s" sys.exit (1) secs ckT1T*, buf) [0] secs ~= 220898 print time.ctime(int (secs) PERE +> RECIO8 be LAM PAT PLM i. TEAL sendto(), RIFE time.nist.gov _fAUIRS 28 RIS T AEP. TE ROXIE AT IB connect () 6 JSP RYE recvtrom() MAB recv(), KEMAH AR. MAK. 4 (EAA EARN UDP BIN, vecv () RAIL WIA AL PRS. SRL, Mh recvfrom() QUI FGBEI—% touple, SLY MUIE RR AGE: SCARCE AUG LAR HE. CEASE RUTH DAD RRA, POUR ARE TS PIE. RE RR KE, FEY LA AS Ota FS AIRS PE PTR. HEF recvtrom(). FEPPACBIAIIPIS EM 1900 FEA) APSR RR CPR ERR, TALIS). BAT ELARRIPE HLA M 1900 45 1970 4EZ (AAV RSS HEAR UNIX BUT RE aR, SEMA IR FELTED. WUR MOSTAR AE, CXS EMEMNET IA. Bl UDP EAE CREME LATER ACS ERK I LP RAY EPPS, RYE BRIS AT ATLA EC AMAVE. Sh, PAT SEBH KS OPEL UDP Ses. PLA A PRLS BE aT 3 Python Kiet FEA34 R26 Msi 26 ie FUSER ABELL socket, EE THRE RRMA VO BASIE. socket ALLEL socket () BIMOKAEW., J&L connect () BORER. GT socket, ATLL i Ash Az FEI A A IP Sek ANS CLS. socket REAR Ph RR ABE — APE HR, EAT LALHE TCP A UDP i fie SAT ELINOR, REAM PHS R EM, PUR REA. BERS BVOC FL AB 2 EP IR AT RE AE. HSB AEA shutdown () MRA SRR EMT, ARERR EIEME. Python 386% 7 PUFHAI socket THEME: ALT UDP Aa TCP HAIMDRHE socket HO, LL BAF fa TCP MR EO. AGRE ARPA TS 3, 3 BAT RMS. ER RE BO RBIS ON. SEMAN Pa RR. Python Pike fest RYs ILS AR SS 25 Network Servers CERI, BUREN T MGB E PR, BOL —7S socket, EBERT, HAT FURR BS i fs ERE, FHL aoe GS BB. BT SAR PNT, BENE Fo MRA RG RT LAL ASH, MSR Web Tita HBS Ze EPA PE DT) BIE E-mail. PEA REE A LANA DS RAS IEE OS AE BMT TIER ANT OLAT A PU R S IR Sh APM 5 TD COD SB ERLE TH, IRS SALERRO RAR IL. (8S BIA IE LEO PARI SE al PEED ULAL CERO RAL, a ARR Ss BB A AAI PH DPE AY socket HEH. (HE, RAHEEM TERN, RAGA EB socket. FRM, BAER AIEEE RE PR BE IE RE kG SH fal MAS RT NR DARA PMMA. MHAMLAAS, UR MARA ARRETOOMREM. F5e AGEL SHER AAT TERED MEN IR BRR. 3.1 EGER PRP RAC BE, RETL —P TCP HEAL FED SE, LIE socket AY BULK VA connect () eR PRS BBE APSA, NALA BE OO RY 4 1. BENE socket HH. 2. BER socket HEIL (ATE). Python WOR mE36 BIS MBS 3, PERO CAR, BATES. 4, (ORE. JRA ES TT LA SS EE # Bind to all interfaces # step 1 (Create the socket object) 5 = socket .socket (socket .AP_INET, socket .SOCK_STREAM) # Step 2 (Set the socket options) -Setsockopt (socket .SOL_SOCKET, socket.S0_REUSEADDR, 1) Step 3 (Bind to a port and interface} -bind((host, port)) Step 4 (Listen for connections) -Listen(5) SORIA socket CHEM AHET . URI RR BURICT tt Zu 3.1.1 BiTsocketRyR HT ARI socket NR. MARAE HEIR > aE): 8 = socket. socket (socket AF_INET, socket .SOCK_STREAM) ASTI UL RSI PO RAT socket HR. 3.1.2 RBS Bsockett A HEF socket, TURES DAMA. RF AH — BURA IRS A. MBL AO ‘BAY socket AH SO_REUSEADDR. HMMM, CE (VRS REUERLEE ILI, PRE RRR LSP CA. MADE MERE CBE OIA EA CRY) TERI ZA Fl. WIRE so_RevseADpR (NENG true, BE RIMS EARS BE socket BEX PARI BE BAILS LAKES SO. RB. FTL UM IRA EA, PUA ARON AD BRT RAR. SO_REUSEADDR MIR Mio Fs Python FUSER AY31 ESR 7 .setsockopt (socket .SOL_SOCKET, socket.50_REUSEADDR, 1) Python %% X setsockopt () Hl getsockopt () MF: setsockopt (level, optname, value) getsockopt (level, optname[, buflen]) value S84 Beth Level Ml optname SRR. level EXT MAM RE. ‘WHHL PIE so_socker. EAVEBAL, WIE BII socket MM. CHA] MLL we — “MDD DUS RE PGE. ATT, AP MASE SE, KSA, BEL TNR BE, “Cr ANY ARR 2b PALF Dy CREASE de BL PDE SOS RAT OS LR HE FR IE HE TRA, BA EMRE RAF set sockopt () MISHA. {BLE Level HEH sov_socker, RIL optname SHEEN ABI. RTA FRY 3 30) ME eB Bik HE HR EAS AD PF A AS PA] I PR) PO getsockopt ()» SUR HBF — 7M, IAEA buflen. WE AME HHL BOPP, WANE putlen, HAMNCHREM RAL BBE. STARA, EXO {UH false, EAE AE OMIA, 1048 true. % 3-1 Wi T so_socxer ®AA MM. 3-1 setsockopt() #1 getsockopt() AYIA FX a BX we S0_BINDTODEVICE, TTPLUR socket RAR MER | RAE Ha RAO 2 AR Reo (ME) HM, Li | MATES PRORIME FRR ILA S0_BROADCAST Sui Jip AGH AAAS A | A AR LA @. Reb UDP AIK. FOIE PRAT MELO, LES + '50_DONTROUTE, PLLA th Bom Kin oh a | A A A MERE, RELAATRE iM vk KE UDP AE 4 — Ha. RE A AER TE ZAP Soak, CART baa AAS Python (AoA REA RE38 BIR MSIRSEE om Bx STV TCP AE HS ORAM, AE SO_KEEPALIVE TVA RATE AEM EOI, ARAB HY ARR | A AL AA RAR ST PhS Hh RIE RE ARE OH, ‘S0_OOBINLINE Ril, Shit — LA recy () HARARE | A ALE aba H socket KALE, ANIM Fik socket Hi 0 $F ‘SO_REUSEADDR HATER, GRRL, RABRLARRL | HAR Rate, Fae A EAA! socket XH (#14 sock sTREAM Hi SO_TYPE ak aM) . RMF getsockopt () FURIE He SR EAR. HEA, SA EE RAKF socket MIA. 48H Linux Al UNIX RSE MFA PH A AT Bt AER socket (7) GE*T man 7 socket) Be setsockopt (2) 42188). Windows fi A] Lait http://msdn.microsoft.com/library/default.asp? url= fibrary/en-us/winsock/winsock/setsockopt_2.asp #4 BNiX/Ma 3... Python BA I-A ALE A BOK HAR, WEAN RARE. AER, MATE TD SERA AR Boks ARAL ACER A UAE ARI Se KAS DI RICH RE 8 “Fi Python #2/% R] LAS Hh M61 88 b 22864) Python AFSL socket He FUR: #!/usr/bin/env python # Get list of available socket options -- Chapter 3 -- sockopts.py import. socket solist = [x for x in dir(socket) if x.startswith('S0_')) solist.sort () for x in solist: print x Python Misa FEA3.1 EER 39 3.1.3 SBZsocket FE PRAMRA BER MAG, RATER ABE. GRMCER 1 HRB, BE RABE RAE BOARD, 3 AUR RO Se RT SOO. ATRE—MAO, WRT FNS: s.bind(('", 80)) IRR IAR 80 HO, CEN) HTTP (Web) OL, RT, SRS AE 1024 HS AE, RAHA A root HP TUS El]. AMF MEAT 1024 AHO SS. bind) RMHB—-TSMEG BE IP Hh. CME, RR LE AA CLF hk . PERALTA, Ht, —MT RMIT SLA RIE ASEM Internet, PMA — PAA EEA BBS. RAF, CARPE NMS ROBT, BT CLA SESE AY AB SB IP Sh RABE. ARAM FUP ERM RR, CHEERARA 90 HO. BIL, TMT SPREE, EOE — AIBN ee 8080. SESE, BTDUETBAY bing () A BORIER AWK socket Sz 5I—-ME a ft IP AALS, RT, BPMN ARORA, AAR RAS RAMA. SOR ASARR FS EA IP SHE, Rt ind) MAGN s.bind(('192.168.1.1", 80) 3.1.4 (ROTTER ERGRR EER WR REID Listen () RR. X-MAR UREA SEER. CRA-TEM, ESAT ARFAKRAMERONR, IAS D PA Pe CRAE) AUREREAED Ub EH. HEME, REAR S RSME RRRARE HK FSM). NTRRSRARS ELMER, ATOM RRMA, HOARY. listen () MHI MF: s.listen(5) | Python FAS Safe HEL PO40 BIE MBSE 3.2 BRIER | KE MIS BBR RUE TAIN LT AES UE) MRE ES EE SHR, BPR ALGER, FART ES ERA PENT. SEM RAR BESS TAIN Oot — TERE. BAERS BOF: #1 /usr/bin/env python # Base Server - Chapter 3 - basicserver.py import socket host = '* # Bind to all interfaces port = 51423 8 = socket socket (socket .AF_INET, socket . SO 5. setsockopt (socket .SOL_SOCKET, socket .S0_REUS s-bind( (host, port}) print ‘Waiting for connections...* s.listen(1) while 1: clientsock, clientaddr = s.accept() print "Got connection from*, clientsock.getpeernane() clientsock.close() while] RRPETEFE AGT. Kb, CA—- AGH, ABE RE FR TERME, TELAT Ctrl-C RAIEE, Curl-C BTL E—74 Keyboardinterrupt Windows | i WREATH Windows , WAFER Cul-C AREA ILAR. WSL, Cul-Break XQ. BAS AML, Break BH Pause BE — MER. BRT, ARGRATEMH, DEMS RN CPU RE. AT, KRM ABU: SAMA accept () MET, ERATE PIER 3B. LM, UNREAL, EZ FET CPU Beak. — AM IL SEAL A RH BR EE, Python FU GER3.3 ANGER 4 AT MRE PEPE A HRS BAF, ATU RARE RSM telnet HS. WFR FEE, ARETRSS, RHE-TAA MST BOM Run MiP localhost 51423” » SMMREBRRARA— TER, HH telnet BFR UML. A) telnet MA, M24 F)—H “Connection reset by peer” A “Connection closed” Mei, FLA RAB APOE ER. DMRS RET, Ay eR MRE TTA BL. 3.3 SBIR ERA REN FH BSE CNEE. MPSA, CARR, SOR PORE SCE HREM RAT CEM. TOT, RARER AE. CRORES BEF Web T1028 ERIS IR, RENAE MRRIA, FEA LEUITIAR. “telnet FFL, MOC HAG ERR AL. BURCH HE — 1+ A OA AE TRAE TR ABA MA ABRAM. ZELL Python AARON SEALE, (MEALS RE — “MOAN. PREAH Python RAMEE, “CATA ee ASH FIBA A Fi PBK TAT AT BE AR, HE — BPR AEA Se AR BR A I I we ER. ZEWAT accept () RTH BLAU HR RET IHR, EMSA ZR, continue HAYA LLELEL BROT. FETE tk accept () AYiMAN. Cul-C at Ctrl-Break 2/23 ftv RARE SPER OE. KARA TT MEM IST IR REM. FRYER TRS #1 /usr/bin/env python # Server With Error Handling - Chapter 3 - errorserver.py import socket, traceback host = # port = $1423 8 = socket . socket (soc '8.Setsockopt (socket .SOL_SOCKET, socket .SO_REUSFADDR, 1) s.bind( (host, port)) s.listen(1) Python PIS PE HRY42 ROR MRS while 1: try: clientsock, clientaddr = s.accept () except Keyboardinterrupt: except: traceback.print_exc() continue # Process the connection print *Got connection from, clientsock.getpeername() # Process the request here except (KeyboardInterrupt, systemsxit): except: traceback.print_exe() # Close the connection try: clientsock.close() except Keyboardinterrupt except: traceback.print_exe() TER MEIPP ICR 3 MMOILIN try BARR. Maa at accept () MMH, ADEE. PREP E xeyboardinterrupt, HUGETRE BNA CHC, FRSA JE. OPH AT ER, RAPA. HR, EIT —& continue WA), RA DBRS CAMII SERIES, RU COUR HEBD ETA TERE) , EGR EAE AN ER BISEFRASHEDRERHRE. CHRATSH: BHR Keyboardinterrupt, UR systemexit. SystemExit BiH sys.exit (MWA AM, MOR BRIDGE ERR EALIE A MEE NV EE EA RAE AE, RSROAH close) MH. RMIT FR— try BERNA, BD UEA i, MER R RET EA close (MSFN M. RO, ATURE RAD BYR, close () AUER HINA). SURES, MERE EA. Python PLS SFE AERY3.4 A UDP 43 ‘RFit. . . finally HAF KAsocket EXMEIE T 40A Python ft) try... finally ADR socket RA ALARA BLN. EX accept () BMOLNINALG, BLASTN A cry 66). CERIN close!) ACH. ft FA finally WE)RAHI socket. RAAF, MR ASIN FM OURE cry AA finally BAZ, MLC socket SH. IMAM ELT. Nat, BARRA EA LAE, LEE ELI REE. TER 2h, BHT ES PAA shutdown () RM RARDA RAH REE. FRB, BMARLALE. WRU MR, CORAM OME, Zam HOLA. BILL, MF BLAH, shutdown). SURE ABR BRE, SS BEAR ICE 7A — SP BY RS RL . RAR, CRAM. Ri. BMI CuLC RESRU AMR E> errupt SP. (Ctrl-Break R27" RH. ) Keyboai 3.4 {#F3 UDP EPR BORA, (OH UDP He TCP ERE, Aye Pa RE WOAH. ACARI SEAS UDP WA BES. RARE UDP ARS SBIR, RARE FRAME, MME Poa Hf OLR A BME, UDP RS AL RAS RMA SPM MARR AAR. BLE RAY UDP ESBS Ee PM HER, BBS BBE A ALAS, ATLAS BB INE NR EA ERK ih SPB eid ATE. aT EARS: 33H HEF] UDP, FT LAR GE TCP AB PERE SY —7 socket, BALE, JAH bina) PRL. PRAT, AUMEAY Listen’) R accept () AM, MR recvirom() BRGRMLLT . 3k (NBS LB ITA-Ma RL: WCBAR, CIDR ee AMOS. 2 UDP. RAEN OL, MRM ARERR VE. LA ABY TCP BRA —TE11N socket #1 SCROUEME. BAA UDP MS, CATULADR aM REY UDP PR. Python FUSS Se Petey44 SIR MARS #1 /usr/bin/eny python 4 UDP Echo Server - Chapter 3 - udpechoserver.py import socket, traceback 4 Bind to all interfaces 5 = socket.socket (socket .AF_LINET, socket .SOCK_DGRAM) s.setsockopt (socket .SOL_SOCKET, socket .SO_REUSEADDR, 1) s.bind( (host, port) } message, address = s.recvfrom(8192) print "Got data from*, address # Echo it back s.sendto (message, address) except (Keyboardinterrupt, SystenExit) except, ceback. print_exe() AMEE TCP RESORT REMS. BAAR, RMR AME WIRE AMR, BATS ARTG, UDP BREE. RT ECA TCP aE GLE, UDP MAMA. 3&4) UDP ARS BE RTFM, WATT veevirom() BM. MST LLP ES FAB recvirom() BAMA S Patil, IHEY sendto() RAGE AR. AAR AM 2 FAVA FAL UDP ATA MH, CME CYT National Institute of Standards and Technology VARS 38, R(GS1¥E RUAN (6). Lb BAN HIXT PLS AIRS OY AF. ATHMARE, BEARACAMAM, WRATH. KREBS. #!/usr/bin/eny python # UDP Wrong Tine Server - Chapter 3 - udptimeserver.py import socket, traceback, time, struct # Bind to all interfaces Python /OS¢ AEH BE3.5 §FH inetd 3 xineta 45 5 = socket . socket (socket .AF_LINET, socket .SOCK_DGRAM) 8, setsockopt (socket ,SOL_SOCKET, socket .SO_REUSEADDR, 1) s.bind( (host, port}) while 1: try: message, address = s.recvfrom(8192) int (time.time()) # Seconds since 1/1/1970 secs -= 60 * 60 * 24 # Make it yesterday secs += 2208988800 4 Convert to secs since 1/1/1900 reply = struct.pack("!r", secs) sendto(reply, address) except (Keyboardinterrupt, Systemexit) : except: traceback.print_exc() MF EERE AE ANTE MEM UDP MR. SIZES 2 EP RE, EP PRG BB BIEN ES, ORS A UR MA, CAR SER BIBT AYA, TCR APB, TORO, PRE. CORE 2 Bey UDP AYE SHFEIF Cudptime.py) » ib 23## localhost ff) 51423 HF, WSR MIRON MER OETA. 3.5 {FH inetd & xinetd EHTS PLE AF AA “CATR EIR BL FS SEB CURE) . SATE REM RRMLNE I. REM LR RUNES el FEE, TENE HLA, OUR RKS NS EE ER I TE OHM TCP BERANE: CHIR HE — he OSS. ESRB BRE BR, RRA ASEAN. IRS AMET DLR 7 a. AINE AEF A BB RAE BP SUNT, FSU 20 HEIR 22 MAB) © dt ADEE IAT HS PEED BTR, BL — ANA BB AE OLS UNIX #IZS UNIX HIBTERRSEOET — TOM ineta BE xineca AUPEAERP OSS Sia. inetd Bi xineta BPFH, SE, MOPAR ARS EM OMAR. BAR PER ARTE, meee SUH EAR AYER NAR Se Oe EEE CREEP HUE BETES). HAF ineca ‘2riH ISS BBE FE IIE socket HiBE. Python Mista aeRy46 3H MBSE xinetd 3 inetd KEM UNIX LEMS RBA VE iner a. WW IRIE AT +6] — #4 i A UNIX 3038 A BSD AY UNIX, {8M ADREA ineca. KABS Linux SE CRAEAB) HAM Red Hat HH xineca RAF i > xinetd MFA inetd ML HARE AM, LAH ARMARS SEE, RT, COMA RAA RR. CA, SB “ineca” A, PERE, RENT SBA. ‘BUX BAT Windows BSBfE (i ineca AEF, PFLLPRAEG A CEB T—H ineca FE, BURT A RHE TREE. CE Windows FG LR ineta MRAM She BURG RA ineca RAF, LA MALI, OS 22 SRT — A RAL TCP 6 Python #/% (inetd.py) « 7E UNIX ak Linux RYLE, MATURES ARM TCP WF. SVR inetd MURR, inetd MELA socket: AN CPHEAARE OAD 1. EANANICHE ARTEAGA UREA. FLAP AIRES AT LLL —4 inetd HRS BBISAT : #!/usr/bin/env python 4 Basic inetd server - Chapter 3 - inetdserver.py import sys print *Welcome.* print "Please enter a string:* sys.stdout. flush) line = sys.stdin.readline() print "You entered #4 charact: ip) 8." @ len(Line) RE LAAUESM Python ARR. HL, AA ARR, WR SO ETC AN ETT AA Cluck () RL. MATL Mth THETA a LS EE WERDER, HEARST Ab. SEPT, WAL Cush) EAR, BORK, eys.scdour RRR. ZE9 2 FE, MOT LGB A makefile ) KAR PERE ESE, (ERK TEI AUS. Python MES GFE3.5 (A inetd 5% xinetd 47 3.5.1 Bc Hfinetd K—-WRBAF inetd. MRC RIA ME xinera CURB /etc/inetd.cont, WA /etc/xinetd.cont M/etc/xinetd.d, WeET) . Mmeatik—W, ARM BARA “RE ‘ xinetd” « inetd BAF AMC RPE /etc/inetd.cont. AFL root FH ERA REBAE . EME inetd MANINIRS BAPE inetd.cont MA FT, KATALIN F: port type protocol invocationtype username path programname arguments 3-2 HAT RMSM TE. R32 DEMSM om wai port ik THOS (KRHRR A Aletclservices H2F) , KANO FRM pews BARRE. ‘ide: 80, hp type SRA TCP ME, ype AULA stream, RA UDP, MAIL agra protocol AURA top & udp invocationtype StF TCP MGB, invocationtype MiKARE nowait. #F UDP, 4 RAR FERREAME FARA FARE GHELOHR—-TPHORARRE, MBX ARAL nowait. $R UDP AEH LAMA MELO, HEAL, OF AABRA wait, HAAR, HREAT Chih “iit inetd RA UDP” username 43% TMS Aik mA MP FIAT username path path A ARMS 3 6% AB programname ATMS BRAS E, WIRE sys argv (0) P Hike mAy arguments BAKA TAG, HORA, MMF BMAP sys argv(1:] BR Python (OS EAH48 BIR MBSE ATRAATR. Gait RB tineca.conetth Fix: 51423 stream top nowait root /reot/example.py /root /exanple.py ATAU RRR, EOAMAB) inera, MARIA HUP FS, ULE RRRMEN REX. CMS RRL, GAVE setc/init d/ineca REM inerd. WRAAMMT, CRM AHEAD, HM ERE vor eS. FRET: # ps ax | grep inetd 13628 ? S$ 0:00 /usr/sbin/ineta 14527 pts/4 R 0:00 grep inetd # x12 -mup 13628 3.5.2 2 Bixinetd K—-HRAT xineta. MREWABHIEAM ineca, ATLA BAUM “ACH ined” RERRLEM A), WH xineta OMA M BM erc/xineta.d M/etc/xine WREAK erc/xin GAR, MASHER LAEBE: BM, MAE /erc/xinerd.conf. TARPS. WEIR xinetd.cont, HMN—SMANMRS BEF RRG ARE PBA URS REFER. WUE xinetd.a, in—A+ a (IRS Be REPE IN BORE HEIR BRP EY. A BUR TE SF), FERPA BUS BRR. FP, RAT. EL) root HABER, ARMAGH. conte STH xinetd AMNRS BRAS E AGN. xinerd AFKARE AMMA. RH SAAR ineca ALPE, BORA RES RAT UL aT EE PET 4b xinetd MAPK “service servicename” Fifi, 34} servicename SARS 3 Hoi BERG. PREM A A, ERAN, ADRES ROA. BAe La PELE E. —PMESAE LIME. £ 3-3 WT ORAS. Python POS RER EY3.5 _ (EFF inetd 5t xinetd 49 #33 xinetdy RAMEN RRR we ep SA xineta HAH flags 2M HMI BLA. tte: toR Me RAGE NaMETNARGS, RA MAR A A Fe inetd — AES HE PREERAX-AKEK jetc/services HALHMH, CRARRM oe UNLISTED. EM, MTVU type kt port ARERET type-UNLISTED, MLMAR RRO Se socket_type protocol server_args PRATCP, WA stream +R UDP, MA dgran FRA TCP, WA top: +RA UDP, MR udp MT AH TCP RHR, RH no. HF UDP, RMI BERLE IDA A AMARA LOHR AAAI, MZ 4s IRA no, 40% UDP RET LRA RE, AFCA, IZ IRA yes. HAS, WEA AR GH) “id it inetd *M) UDP” HR TAA ARMA P Pika KIMI KALI HY HAIG AE HRB BAN SM. HFA THe ineta RE, ‘MT wawErnarcs flags, Ark i LAR EY ABM
, size=711, nrept=1 (queue active) JET CRAB ARP RENT) RTE 4 A 14 HEE 645 SP, HE erwin SLE PERG BEBE post fix/amgr IER. syslog vs. Logging Python 2.3 3A T—-NA6% logging HBF, BET AYA FASO A eH RT JO. SRG HEA —/M4E UNIX PR, SPH ee 7 TARA Python, FINRA Ss ARG AMY RAR, BTV AE. REM, ERIE LR Python 23, FA Logging De RAE AR LATA oye log BURAPLILES syslog MIA MIRIStE. 3.6.1 Z£Pythonth {AA sysiog Python $2867 —“S5T LIE AME sysiog AHEM cyslog BUR. IMR AT, {8L2URFA openiog () BEORUMHME syslog HO. Python Mike LE: openiog (ident [, logopt{, facility))) Python MAS MRE SRY3.6 Mi syslog RCRA 57 R-VBM, ident, R-MREHH, CRRADMARG-KASAGP. WHER RFMZE, AMSA A LE ID, ZERTIM sysiong fF#, ident JE post fix/amgr [24445] WTARAM RGR, PLABINA ATS AA. EATER. IFA ATLA Python (iri BRERA. 23-4 Bilith Tl BAA. 3-4 syslogit L0G_CONS SPA ASME H syslog BARRE GRA MARAT AR, IRA RE pete hl 6 bE iE LOG_NDELAY TRRAT EASE ALA FF syslog A HE RMA GAB — HEA EO RATA) LOG_NOWAIT BERRLRA—DM RARER LR, KA wait () FARK. HEART LARA, AME ARE, BARRE 10G_PID ADAGE ASL? OSA ID LOG_PERROR HERIRT KH] syslog MAP, MAES stderr LATE aR (EAH FARK Ht A AE HH) TM LASHER. A, RAE eS RO RCH ATSC AUR BOTT AEA AM. Python SF FM TIL. 2 3-5 FHT CANA RB. (LES AAI REM AUR UHR TE RETO A» Python MAS a PEACH58 Boe MRS 3-5 syslogI A IRem | Mat & LOG_AUTH igh e: BR, Rd LOG_CRON RAAAOSARRMBA MER 1oc_paevon — | #07 HeAIBA EAE RH RA BE 1L0G_KERN JRE AA ARSABB (Python AEP BRREY A) 3K LOG_LOCALO #1 LOG_LOCAL?, RA TAWRM, HE-TARERH AC oc_tocatx | RAH. PREHAMAARLEAHRM, BATARALEIA, BAL JeesR>, Loc_LocaLx AAR MH LOG_LPR ATER ARH BE LOG_MAIL Fob A KT LOG_NEWS Usernet #1848 8 LOG_USER PRAGA IEE, SORA AMRRL, MARIAM IA LoG_vUCP UNIX-to-UNIX Copy Protocol (UUCP) 48.8 (SLAARY MT ) PETE A RROD BIG T WRAL MR IER — AAP BL, MEAT LLIB sysiog () BAM. Python EMF: syslog([priority,] message) Jeep (HY message Z—7MEATIAIEAN A RE AEH. priority FA TIAA ARETE. et syslog REBESCPEAL MHS RT — 720 A ed AE. LS, LLP BA LR a A ACR SEH IL Ea, RIE SPU ED TT AMGEN ME EF. RUBS IGALAB LOG_INFO. 263-6 TU TOSI EA RAO, RS LTE TT Python (39988 REA3.6 BL syslog HORE GT 59 3-6 syslogth tA PERE 8 LOG_EMERG REM, RARE ERATE ‘LOG_ALERT MERA RE BR: BRE AH LoG_cRIT AK ArH HAR C88 A LOG_ERR LRA roccunine | TER ERRR RRM TORMA RARER, (OR RAE RL Ha AMAA) LOG_NOTICE HF—-AERH ERMA SO LOG_INFO Hate ‘LOG_DEBUG WKEL; ATRL SEA NB cyslog HEMT: #!/usr/bin/env python # Syslog example - Chapter 3 - syslogsample.py import syslog, sys, StringI0, traceback, os def logexception|includetraceback = 0): exctype, exception, exctraceback = sys.exc_info() excclass = str(exception._class. message = str(exception) ) if not includetraceback: syslog.syslog(syslog.LOG_ERR, "ts: ts" & (excclass, message) ) else: excfd = stringIO.stringI0() traceback.print_exception(exctype, exception, exctraceback, None, excfd) for line in excfd.getvalue() split (*\n"): syslog. syslog (syslog-LOG_ERR, line) def initsysiog(): syslog.openlog(*#s[$d]* # (os.path.basename(sys.argv(0]), os.getpid()), 0, syslog. LOG_DAEMON) syslog. syslog(*started.") Python POS SPER60 FAIS MARS initsyslog() cry: raise Runtimefrror, "Exception 1* except: logexcept ion (0) raise RuntimeBrror, "Exception 2° Logexception (1) syslog. syslog(*I'm terminating.*) JOFFE CIMA inicsyslog () MMORVME sysiog AB. CUA S #5 LMA ID HARES, PBS REA dacmon HEE, HAM TRE BREAD. RRRIER KR, RRS BOR RT. EK, REBAR EMMRATRH: R-TSAAS, (AAAI traceback, HMI FEE ABMN traceback. logexception() MBX logging FH AR. CHAMA sys.exc_info() RBMATFEAF ‘AAA. WR waceback RARE, CRMPMIARARAVACHEE. BM, CaP FER traceback. CARRIES BRP MEF try...except HAP AIEM AM. MOTO except iA) 18 Logexcept ion (1) ZEW sys.exit (1) 2H RA BH HT —MERMAIE. UR TA TEE, ERM LOT ARAAR. Wi, —HMBS MICRA RANAS SHE. MUR var /log/ fA BMR/var/log/syslog Xft, HB syslogsample.py id RMR. CEMICRH F runtinezrror HM M704 traceback. 3.7 BRI ALE DRI Se BES EO I FE ERE AE 4 ESF RE AER LS RARER A — SE LER. RARE. BERETTA BIEN Cn RENTBIEEE) . BL, MUR ENIEES, (SOY buffer SRF, ERE THR I T HABA T Python MSM Fe Ri3.7 BRT 61 AT OWA, CBT ALY TCP AYR BATA TCP Oe Pi FIR 2ARS BRE: #1/usr/bin/env pychi # Echo Server - Chapter 3 - echoserver.py import socket, traceback # Bind to all interfaces = socket .socket (socket -AF_INET, socket .SOCK_STREAM) .setsockopt (socket .SOL_SOCKET, socket .SO_REUSEADDR, 1) -bind( (host, port)) -Listen(1) clientsock, clientadér = s.accept() except Keyboardinterrupt : except: traceback.print_exc() # Process the connection try: print "Got connection from*, clientsock.getpeername() while 1 data = clientsock. recv (4096) £ not len(data): break clientsock. sendall (data) except (Keyboardinterrupt, Systemexit): except: traceback.print_exc() # Close the connection Python FUSER— 62 ROM MARS try: clientsock. close} except Keyboardinterrupt: except: traceback.print_exe() SOME ARIE AE. MRI TE HE AHL AB LA telnet HERE 51423 HO, HARCSEASRMMAE SR. RAEBAE TCP ME MOAT: env python t with deadlock - Chapter 3 - echoclient.py Ai fuse/ # Echo import socket, sys port = $1423 host. = ‘localhost data = "x" * 10485760 # 10MB of data = socket .socket (socket -AF_INET, socket .SOCK_STREAM) s.connect ((host, port) byteswritten = 0 while byteswritten < len(data): startpos = byteswritten endpos = min(byteswritten + 1024, len(data)) s.send (data [startpos:endpos]) byteswritten + sys-stdout .write(*Wrote 8d bytes\r" & byteswrit sys.stdout. flush() 8. shutdown (1 print "All data sent.* while 1: buf = s.recv(1024) if not len (buf) break sys. stdout .write (buf) Python MERE38 SH 63 ATHERMEE, ADAMS, RMT MNE OM. SDR AER. SPM RAT OMB NE, LIKE AMBRE, RHC SER RERERAMAR, CRAG LRERORS. BU LOMB SBE AREA TEN. MRS BATON 4KB, RES EZ RBI SPR A Re PSR HE RRS 5 TZ AA AT ETE, BRE AR SEM buffer TER TRERT, AER MATE send) RH. ERMA, SP MASHARARES BRET KB 350KB. KARR, RPMFAAA, RAO EL. AIRE IAT IRN. RR PET SE send.) ie BET —IK recy () © FAS TG BRIE RY AS Be Pi BES Bb EA A Con SAE Ph 10485760 J 1024) . PRIA TG, BEM TERME RAI LAT AEE POT UL RHR. JAPA ER 20 Bl 22 BPN. FANT RRR OF FRR. ENNIS OL a, aN HN A RE MATERA, CLAM EAE OTR, AA CRITI. RAAT HRI. KPRANMES AB, TIL 5 He. 3.8 BE BEBERR MRA EP MARIE REN, BIE PFE PE, HSS BAAR socket EO, (ARRIT—* socket NUBIA 4H, socket 22:51 F] LAF REL Rt —(M iF FRI TE RGN AT A. ARSE RESCH 340 so_REUSEADDR, ‘ESLIPMOZE socket KAZE, Sheer eatey. TCP #1 UDP ffi SAB EFI 4TH). TCP ARS B— ALESHA accept () KA BENE Fe PIE SE—AN FRY socket. UDP RH BBA —7AH—1 socket, IEA recvirom()38 (ELS CE ke i ee, inetd Bh xinetd BRFSEEET —P 77 (EAN TR OUT REREIHE EME BR Ss Be ah 8 ARAM, RP CNMERERAM. Wi ineta M xineca RI KMRS BERS ATER HEA RR HB HY socket. Python JIS ti fe64 BIE MORASS AAR RE REAE LP AS ER HE AT A. OG BEAR) — aT AE BR CHR UNIX BEE HE sysiog HA, iii Python th — HIRATA. SIRS BALA PNR BORER tH BRR, ALT A eH FES. hE FeaG a APRON, OY AE BR Se AO Python AAS aa AE AY& WBA Domain Name System WRG (DNS) E—TASARM RUE, CBAC AHL SHB IP ht. DNS LL ARARLMA AGE, ERAT ATR: © CATERER HIER SF, Ht www.apress.com, AE IP Hit 65.215.221.149; © CNRS BA IP hh, ULEAMNME TE. TE, HVE DNS UBM Sts HERIBEE ROEM HEMYEH Python fH socket BE VLBI A httpyfpydns.f net) PyDNS BiBeA I DNS. Python DNS Libraries S41, 84 Python 2K, AJLAPNIPlY DNS BUR MTLLEI. A S-eH) PyDNS JEJE) — Fh. SUBIYAT dnspython, FILA wurw.dnspythonorg #48). EXEAILLIK http:/pilcrow madison wius/ ‘EI dnslook. BRIGIEA adns, —1\5#4% DNS HE, FIUA A http:/dustman.net/andy fpython/adns-python Bal. 4.1 #HIDNS BiB DNS £—-THEKE, SERNA A RUEIE, CHORIN RZ ES, EMER — FAMER, ANRABASR. tA TAF, iL RMKE ~ Ff) wwwexternal.example.com. HH, WEES AUR IER NCE SCTE Te RO ACHE PH BBA. EDR RE TEIAN RSE, CUCBHERIELL GSO HAGEFE. CR ABERARTME. 5B IRS SB ALO — PI HAL com Hh, ERAT ARMUTBRS WR, HMB BOT CLES A LTRS OL, BAL. come Python F956 Mi FE IRL66 B4e GSAK FAT com IE} JE LL — HHH A Sb % BRR Se BB HE FS HH 8). AS RT CRRA PAA .com HM. ATA, AIMS RABE. B. com Mk RHUL AI— RAAGETAM, KMEZASHM ANS CREB, WITS BT LEE example.com Wem. MAE Sk, ABR A HYPE external .example.com MAIS MIR RE . IX JRF A 0 BP AA IP HE, FE. BER RRVAMTBEA DNS ARAM. RRS NASRERRE LH, BEY TBH REE RA DNS Bf) LAELIA. Python ZEEM socker BUR, HT UilaikeeMe PER RRS RO, B= HARK T SH mR HOHE. 4.2 @RRERRSORS PERSAS He eT DNS BARAISHHE CE ARRER IY resolver HE) , iKAEUN AAT ELI RAMS OAREHMOR. HA, RIAA BAI DNS BEAEERE, UATE Seat MTR. SAMRAT RR METRO, ROL ACES OD DNS REMOTE. 1 B UNIX RRDR DAM erc/noses MIM, FELT ELSA IP MHL. BMRA THE WERLAME evc/nosts, MRR AREER 2% DNS Fi). —IKI, Windows BLABE HEAL. TIRE, RE APDRIE RAB Yo PEABO DRI I BASIL MB (DNS ASEH) 2 TP Hh ‘ik PEt REE AE HO. Ze UNIX RELIED /ecc/resolv.cont KILN, TEZE Windows RL, MGMT, FF LAE MERE TRAP DRT OY. Ze AMAL, MOT RRA AR AUR MAS. Bl, RHEE T NRHA OR “oxanpie.con” » IEEE “mw”, RGAE AAEM weow.eramplecom. AFAR RS RE Aa A th, A a 42.1 RiTEASD REANAWLEARW, CRB—-TEMS RAR IP Ht. Flin, RM ‘www.example.com £ FR—S Web Hii, MH, MARAE) IP Hehe. EM AWS ERR EH, ERTS FMA IP tht. Python (OS REA RY42 CBR ERRSIRS 67 FEAEAS RK, Python fH socket HS BEK AAA. AM, SRIMACLM. Ail] DNS AMROALAT, MUMRCRECEOM AA, RPRSSTART. RECRES IE RNAS BOS RE ALB. HE Python F, WHE EMRE socket .getaddrinfo() Python BEACLEM: getaddrinfo(host, port[, family, socktypel, protol, flags]])1) ‘RD gethostbyname() C RF AZ HRA gethostbyname() HM. Python MSE th He HT — 7 26 Al socket .gethostbyname() BS, (HRA MA IPv6 BIR. HAR WAE, TE FSA PLB ART, BALA IPv4 CLR IPv6 IRAN. RF IPv6 WE AA, LS host SRL A AR IR S.A SS A AIEEE RETR BME socket socket () M socket .connect (/MARAHB. CMAEMM PHB LAAT AX, LLB T RSE socket TORS RRR MEAG EEN ER. BLE, SE WTDLBLAR port {839 None, Pa AMAIA SMR EAT —MEAHTEEA. Python X socket getaddrinto() (KEN tuple, 7 tuple Hb MF: (family, socktype, proto, canonname, sockaddr) sockaddr Sei LLC REDLARMMLHE, ALACAT AIR AUT AR BEARAUMGR. Fb Python tuple PATER OFF. ERR HHOM 4 PIER. socket getaddrinto () BAGEL 4 tuple 31) RAAANT—T HM, TAS MER. Hin, MI wowerample.com HILDA Web Aik FROSAMR MAR, EMAIL IP Hk, GALA IEPA, BI www.example.com “MARATHI, MAT LAE AR. ASK, BEATA IPva, LOT LLMiL IPV6 KV www.example.com. IES IPv6 WRB, CPG RAE ERMAR. ORIG R AEA EE) 7) TP IRR, SOT ERR tech ONS tuple, ik B44 PIF: Python Hi IEE68 B48 SAR #1 /usr/bin/env python # Basic getaddrinfo() basic example - Chapter 4 - getaddrinfo-basic.py import sys, socket result = socket.getaddrinfo(sys.argv(1], None) print result [0] [4] WA AAT tuple “PAY sockaddr SARALATHIN. BLASS MRAZ IN —+> tuple AE sockaddr. HGRAAR FRAT LOAF: § ./getaddrinfo-basic.py www.example.com (+192.0.34.166", 0) $. i $ ic-py www.yahoo.com *216.109.118.64", 0) TARE ROX TLAEVEDL tuple MERIT IRI. BAEE WMATA getadarin£o () fie — PR GEE FASE) . Se) — HEM connect () MB BGR EME AM Suk ANN 15 fH tuple. SEER PAU AEA www yahoo.com iI HE MFT HEA RAAT LEAR F www.yahoo.com #7 1P seh: $ host www.yahoo.com RRCTARN, AAP www.yahoo.com CNAME — www.yahoo.akadns-net www.yahoo.akadns.net A 216.109.118.69 www. yahoo. akadn aA 216.109.118.74 www.yahoo. akadns. aA 216.109.118.76 www .yahoo. akadns. N 216.109.118.77 www. yahoo. akadns. a 216.109.118.78 www. yahoo. akadns. a 216.109.118.64 www.yahoo. akadns. A 216.109.118.65 www yahoo. akadns. A 216.109.118.68 SER: host 484-236 AF UNIX #4. Windows Jee Linux FG UMA T LARA EAS, Linux JP TAR 08 OP AAP. | ik: ALMA yahoo MEERA, HAA REA, AA ARE RAT RAM. KK RA TE. Python WR FEA EA4.2 CHERAB 69 HH cetaddrinto() RASMMAAHETUM, Bay ewit: #1 /usr/bin/env python # Basic getaddrinfo() not quite right list example - Chapter 4 # getaddrinfo-List-broken.py # Takes a hostname on the command line and prints all resulting # matches for it. Broken; a given name may occur multiple times import sys, socket # put the list of results into the result" variable. result = socket .getaddrinfo(sys.argv[1], None) o for item in result: address tuple for each iten % (counter, item[41) # Print out th print "8-24: & counter i, “GET FNNMR, BRAM — TRA MRT BK § ./getaddrjnfo-list-broken.py www.yahoo.com 0: (*216,109.118.74", 0) 1: (*216.109.118.74", 0) 2 + (1216.109.118.74", 0) 3: (°216,.109.118.76", 0) 4 + (1216.109.118.76", 0) 5 + (1216.109.118.76", 0) IRIE getaddrinfo() SHUM E ANA I EER HER: A AGHMELLHARERS K. AREF GL, #40 Windows HH getaddrinfo() BUR AMAR, PRAMS ADRMF EL, PRALORRARE, LRRA—MER. Rh, RPRBREKH, AHRERRHRAH LANHAM DRAD, AREER RAL. ATRMUR, LHP AARMA—K, HFKH protocol MMIL® socker .SOCK_STREAM, family SHIR O, GbE LAHAT family. Python AOA a FEAR70 B4e BSA IBA MAF ER: #!/usr/bin/env python 4 Basic getaddrinfo() list example - Chapter 4 - getaddrinfo-list.py import sys, socket 4 Obtain results for socket.SOCK_STREAM (TCP) only, and put a list # of them into the *result* variable. result = socket.getaddrinfo(sys.argv[1], None, 0, socket .SOCK_STREAM) counter = 0 for item in result: # Print out the address tupl print "t-2d: &s" % (counter, counter += 1 for each iten tem(4]) ROK, CHARA TRA RGR IK, WF: -/getaddrinfo-list.py www.yahoo.com 6.109.118 + (1216.109.118. 118 1B. 118 -118.77", 0) socket .SOCK_STREAM SUSE A: BRGE % BIN ATR IFAT POE EAA, ERIE EW getadde info ) S55) — M04) SH FE ALEERE socket. IAF 5 HE} [PVG SN AYR 8 BL RARE socket MA. 42.2 #IRABD AMAR, SSA IP MTR, ARMY. SAE, BRE RR SBME LBS PO EER EM, ELE TESUEIR FSB RRA. F/M, BRREA—-TABRTR SREB. MERAY, SEER ERM, FAVANASRETKEEN, BEATMEREMNR, BAR BIAR. Python Mie FERay42 CRAERRSRS 1 RAPE ATEN socket 25 44 21N0iG0E IP hb A Flak, (HE RAR P Heb SLBA Bae tEAM A AN EAT LAE LP BAO — i, 23 AE, Ai — SOT REAVER ROK AMA Internet PL. ERRATA RTA, fe ed eA RO I ROR NR, RR he At WE, ERE RR. 4.2.2.1 Rm Rwb EFRON. A-TRENTESBRWA, BWA, YF IP Ht, eT ATAEA AERA. BRL, RSP HALA ARR. Internet AEA RA DNS, Al DNS BFE, Ede AAT AOHEE FLL, 5A REAR HAS APR FT A socket .herror(}. PITA —4SAj Python TBR MARNE. Ch O47 hes HH AY IP HL THEM, JHEP, ME: #Jusr/bin/env python # Basic gethostbyaddr() example - Chapter 4 - gethostby # This program performs a reverse lookup on the IP at ton ddr-basic.py dress given command line import sys, socket ery # Perform the lookup result = socket .gethostbyaddr (sys.argv!1)) # Display the looked-up hostname print ‘Primary hostname:* print * * + result(0i # Display the print "\nadéresse: for item in result(2): print * * + item of available addresses that is also returned except socket -herror, e: print "Couldn't look up name:", € Python FI i FEM72 B48 REAR Rae FRAT: $ -/gethostbyadar-basic.py 127.0.0.1 Primary hostname: localhost addresses 127,0.0.1 § ./gethostbyaddr-basic.py 127.0.0.2 Couldn't look up name: (1, ‘Unknown host") $ ./gethostbyaddr-basic.py 2001:6b0:1:0a:a00:20ff:fe8f:708E Primary hostname: renskav.stacken.kth.se addresses: 2001:6b0:1:ea:a00:206£:£e8f: 708 $ -/gethostbyaddr-basic.py 216.109.118.73 Primary hostname: P10.www.den.yahoo.com Addresses: 216.109.118.73 A— MAT RAR localhost ht, MAREAT HAA: BOM TMP Rw HL AUH DUE. TEE. AOR BORE AR ASM: B= Pia T Mee RIP v6 Hak CRA TERE IPv6 MBL LA HEAT ALDH) 5 BVO AMOE OR T Safer tea IPs Sk. 4222 HFRARRMEARENNS AK, CARMMAASER MARR TA HME. Klin. HAMRAERAB PIR EMA IP HL, BAALIKA whitehouse gov. ANTRAL, ATE AATSEIL St ME al CBF ASME ALR SCF IP BAHL Al whitehouse gov (NPLERER) » SRA LAASEA, UTA HORA 5 Shit, OAS AA CE Bd JRA ZPTEMELE, EDN DNS HAMBLAR. ERE, EMM a ee BART whitehouse gov iti B.A RII .cov MH BAWKT whitehouse. gov HN AR, CAHIERS ARES. Python HAS GFE42 EARTRASRS 73 MT AEA. REUERT IP AHA. Bilin: MUR EL AY IP HL 192.168.1.2 BET Rai, BARAT KB HO SMS EMA 192.168.1 FFA AER 192.168.1.2 IRE, FTA E32 —4K_ whitehouse gou-— BM (83 H(A BEB AEE. BBR ATE EMH, (HGS T —MERN ER. DNS HSER SiH BLA ANALG KR. PATO, SOT UE RE hn A — SY RELI. AT RAB, PREM BPR RIA, AGHUE IP HBR. A OR REARAUT KEMAH. MREERM, PAA IP MANE ERIE Pi. BM, RAAT MR mS. FEAF: nv python cking gethostiyaddr() example - Chapter 4 byaddr-paranoid. py # Performs a reverse lookup on the IP address given on the command line # and sanity-checks the result import sys, socket def getipadars (hostname) : ‘Get al sees from a given hostname. This is a standard socket .getaddrinfo (hostname, None, 0, socket .SOCK_STREAM) bx(4] (0) for x in result] def gethostname(ipaddr) : """Get the hostname from a given IP address. This is a reverse lookup. *** return socket .gethostbyaddr (ipaddr) (0) try: # First, do the reverse lookup and get the hostname. hostname = gethostname(sys.argv(1]) # could raise socket herror # Now, do a forward lookup on the result from the earlier reverse # lookup. ipaddrs = getipaddrs (hostname) # could raise socket.gaierror Python Fis ta eat74 BAS BARR except socket .herror, print *No host names available for $s; this may be normal." % sys.argv(1] sys-exit (0) except socket .gaierror, e: me %s, but it could not be forward-resolved: $s" § \ e)) sys.exit( # Tf the forward lookup did not yield the original IP address anywhere, * someone is playing tricks. Explain the situation and exit. if not sys.argv{1] in ipaddrs hostname $s, but on forward lookup," % hostname TP address list." @ sys.argv(1] riginal IP %s did not appear # Otherwise, show the validated hostname. print "Validated hostname:", hostname MORAGA RAS HOt, BSB — RRS SR ROR EEL fa. HGPRT: /gethostbyaddr-paranoid.py 192.0.34.166 idated hostname: www.example.com $ ./gethostbyadar-paranoia.py 192.161 No host names available for 192.168. 42.3 RAWRER STRATE RHA AR. RREORRY, ALMREOR BRS, Blin: ASAE. SEXRET LLG IP Robt, (UIA ATR, OO BARZET 2 RAIA, LLIEHE socket HA Hid A ICAI AMA B. 7 WTR, CREWE TVR. BME cocker .gethostnane(). ERAMEME BOSE. PRAT AML EELS. CMT TEMI, aR Bi, NF erwin.examplecom, BSH erwin. OP BMUE socker.gettgdn(). EH-TSM—AALS, IFAS RAUMUE. th PAR, URAL RF erwin, HARTER example.com MERA, ERLE erwin.example.com. Python P48 tei FEA42 CRRA RS 75 EMEA RLM SOR RAGAN. ERA, CRIES SSR. PA, AT Bice ReA aS BI IP HHL. EAT LE cechostname() RAEML. Hat, BEA geciqan |) RA TERRA. BUG, GH gevaddrinto () RRA BRAN MAY IP dhhk. i JRF AF #1 /usr/bin/env python # Basic gethostbyaddr() example - Chapter 4 - environment. py import sys, socket def getipaddrs (hostname) : "Given a host name, perform a standard (forward) lookup and return a list of IP addresses for that hos! result = socket .getad return (x(4] [0] for x in result info(hostname, None, 0, socket .SOCK_STREAM) # Calling gethostname() returns the name of the local machine hostname = socket .gethostname() print ‘Host name:*, hostname 4 Try to get the fully qualified name print *Fully-qualified name:*, socket. get fqdn (hostname) ery: rint ‘IP addresses:", ", *.join(get ipaddrs (hostname) ) except socket .gaierror, print *Couldn’t not get IP address: ABETAAMAF OR, CRAB HAR: $ -/onvironnent .py Host name: erwin Fully-qualified name: erwin.example.com TP addresses: 127.0.0.1 NAT, IP Sh RAE ATL, PAY Es IEE Mik Ace CA Be a LS D- TREN OLMAK) . SABI IP MHLRATHEE— a st—, RMAF APRA MEG RAB ENE, BIEN, RE RAE RAMS LM, ZS Imtemet ERARRIEMA, HABER S Python PES PEM76 _ Bae MSA 4.3 (6FR PyONS #iT BRS REPRE RIGA AS BH UTA Hy MIL OS RA HE BS HS. BL] SMTPCE-mail Bre. DNS Hi LA MSHA. PyDNS f(t THE ERA DNS KANEKO, HUATERMEAE, SHES A —HE XP DNS ESSE. AME REE RAHA: PyDNS iH ARERR OME HE EA APSE (NW, Plitlerc/hosts, PAG AAMT ERG HAE 4.3.1 DNS Records ASSUTEMAM NRT, AEB PyDNS, BLM LA aE AEN fe, BAAGHNKA TRAM BS HAAN records. Fill RE SIBB MASK records WH: © Arecords Ht} 361% AY IP Hh; @ AAAA records $i 4 HLH A IPv6 Hitk; @ CNAME records 1 X 5%. Hit —‘S4EBL4%, CNAME records 24#14]—% A records ft SHLZ, FaRRT REA IP Hh. AIR, CNAME records 24814] PTR records, IGA A records; © MX records 4 i (i iid FF (1 HS 4 22 HH 35-3 (9 GLA Cail exchangers servers )»MX records ADBA—NUE, EARS NAAR RS BIER: © PTR records 4S IP HABE DEALS, GX ALAN ER ie BP mY; © NS records 1) MALE ME ARG © TXT records FFKKE—TPERLN ETE, OMNEEIR © SOA records #7 AEMLUUH (Start Of Authority) (88. EAHA faze DNS | RAF record ffs BL. BRT He me A El BH) BEB) A, AAAA BI CNAME records. RAH) RAEGB PTR AB CNAME records. iL, TAA HAMAR, Msi (BF PyDNS BRITHL ILM DNS HE Python MISS FE CA4.3 (FR PyONs TERE 7 FER: ABAAK GMMR, PYDNS iE FAA IPs. RHR HM Ive Hid, MAUR dnspython. AAA AI ARF “Python DNS HA” HTK, 4.3.2 38PyDNS PyDNS FF ASE Es bat Python 2247 MACH — 5} BA Python AB AAT AN. PAUL, WSL BA. MTV E MIME http-/fpydns.sourceforge.net/ FAR. YR Fai — lal F ARO) Ze bean TTR 38. Debian GNU/Linux (UH WHATLUB{F apt-get install python-dne. ZAPATA T ZiT, MRR TIX (package) . 4.3.3 f§SPyONSBi PyDNS /# #2 ff 7 Python #€ $k DNS. AY 5¢ 1 OM i Ze mY FOE ob i A DNS.DiscoverNameservers(). EATER RAHN ZAMS B, Ze Windows RIPE FH (registry) » 4£ UNIX RH bb /etc/resolv.conf. 4HBf PyDNS Pi BERR H AR BE. GER: DNS. DiscoverNameservers() THA—# NMFS KAMER, Ato Mac OS9, GABE FARM /etc/resolv.cont, RARREMA, FEHR, KF ES 44RY Fo Python ARM. Z MUA, wR HEAT Windows £, H4RM DHCP, fT Windows Lt) DHCP HARM EMP K HS HM HB 18, MA DNS.DiscoverNameservers() HT MARAM. eR DNS. DiscoverNameServers() R&T, HRA ISPAABEDR, RPAH SAMS. GA WTAE T PEM DNS. Di scoverNameservers() HWA, MARE ZARA RIF: DNS.defaults['server'] = ['192.168.5.6', '192.168.5.7'). PWM BASS Bs, KAS LBA request object) . Mea DNS.Request () RIB, XS AT DLA HEA] DNS BEATER. RAR Crequest object) ff) rea() HAA KMTRM NAH. CMAAAF SH: name, BT KGW ZK: atype, EH TWIP HMA record KA. Python M5 MRE78 A4S BSR AGAR AR Crequest object) RAH AMINA, PyDNS SRE —P AA RHE ALR (answer object) . WSTRANALEM answers, KPAAMABAMNEAR. Piss AMET BF #1 fusr/bin/env # Basic DNS li ‘ary example - Chapter 4 DNS-basic.py import sys, DNS query = sys.argv{1] DNS. DiscoverNameServers() reqobj = DNS.Request () answerobj = reqobj.req(name = query, atype = DNS. Typ: .ANY) if not len(answerobj .answers) print "Not found.* for item in answerobj.answers: print "#-5s %s" & (item{‘typename'}, item{'data')) DREGE FRAG, BARB. 1, MROROT —TAAMM EME, OR RARE TE MER, TAREE. JO, USE any BURT, ARR, Beto RAHREREN, ABR ux records SEK. ERR F. WASH any, MLURRB— AP aH iag. ABETRMET, GABAA TNR: $ ./DNS-basic.py apress.com ux *mail.uu.net') MX (10, *mailt1-apress.com') MX (20, *maildsl.apress.com') Mx (30, ‘mailtibackup.apress.com') MX (40, ‘maildslbackup.apress.com') Ns Ns $s. A § ./DNS-basic.py nonexistantexampleasdf.uk Not found. § ./DNE-basic.py www.yahoo.com CNAME www. yahoo. akadns net. MILB apress.com, BARA REGLIME ARES OREN. CAME Python FAS REM RY4.3 {8 PyONS HRA 73 P, BRB KL ARS BABES BM record, ALAA ENB IP Heht, HUB RS ‘ik — 22TH A BSE eh UP Bb RAE, ANE www.apress.com, ELRTAR-TEMMMEAL, BSCE RAM IAA EBL, BOP UGE T SRT. ER. ATI, BER HT CNAME, (ETERS, WAFL Ait. any AMA PE, BURE RIG BUR IEe BS RHE (cache) PANE, RATE M. HM. CAAA, apress.com ft) a record RR ABT. 43.4 BAHAVSRRBS SPRNTTLAEBE any RURAL AHS RRR, BRT RAR HERE. HT RAM, MEARS MG BRAS IRS RELA OBE TSB ws records SRL. GN, MRE #ity wow server.external.example.com, ‘Ett KRERBL FA ns records, BAB server.external example.com i} L—H#I.coms RESETS, CRAMER 12 OR BE, FEAL MES te MRS BBA, PORE FN SR #!/usr/bin/env python # Expanded DNS library example - Chapter 4 - DNSany.py import sys, DNS def hierquery(qstring, type): "7"Given a query type atype, returns answers of that type for lookup qstring, If no answers are found, removes the most specific component (the part before the leftmost period) and retries the query with the result. If the topmost query fails, returns None.*** reqobj = DNS.Request () try: ame = qstring, qtype = atype) [x('data*] for x in answerobj.anewers if x['type'] == qtypel except DNS. Base. DNSErvor; answers answ: 1 # Fake an empty return if len (answers) : return answers Python EIRB4S BAR else: vemainder = gstring.split(*.*, 1) if len (remainder) return None else: return hierquery(renainder(1], gtype) def findnameservers (host nam sneactempts to d hostname. mine the authoritative nameservers for a given Returns None on failure.*** return hierquery (hostname, DNS. Type.NS) def getrecordsfromnaneserver (qstring, atype, nslist) seigiven a List of nameservers in nslist, executes the query requested by gstring and gtype on each in order, returning the data from the first server that returned 1 or more answers. If no server returned any answers, retu for ns in nslist: st).ne try: answers = reqobj.req(name = gstring, DNS.Request (server = ns) type = atype) answers if len(answers) : return answers except DNS. Base. DNS pass return [] def nslookup(gstring, gtype, verbose = 1) nslist = findnameservers(qstring) if nslist == None: raise Runtimezrror, "Could net find nameserver to use." if verbos! print ‘Using nameservers:*, *, *,join(nslist) return getrecordstrommameserver (gstring, qtype, nslist) query = sys.argv[1) Dw -DiscoverNameServers(} answers = nslookup(query, DNS. type.ANY) if not len(answers) : print *Not found." for item in answers nt "8-55 ts" & (item{'typename'}, itemf‘data")) Python MIP RAY4.3 {$F PyONS #/JSRSB 81 BT Ahi BAS kA 5 BM, REARS T JL. SREP , EEG STA ENG nslookup(), AMIE any. nelookup() MER i9/H tindnameservers |) BMRNARREARS BAR, BALA WAR, WH getrecordstromnameserver(), BMGFERTS MMR LTA, HBR BER REAR. Cindnaneservers () BAM AMAL nicrquery () BMRA HEMLS, HULA ERI BE. AMPS AHN, JERR AHA. § ./DNany.py apress.com Using nameservers: auth120.ns.uu.net, authili.ns.uu.net A 65.215.221.149 MX (10, ‘mailti.apress.com') MK (20, ‘ma: apress.com’) MX (30, ‘mailt1backup.apress.com’) MX (40, ‘mailds1backup.apress.com') ux *mail.uu.net') NS authili.ns.uu.net NS authi20.ns.uu.net SOA (‘authi11.ns.uu.net', ‘hostmaster.uu.net', (‘serial', 174), (refresh *, 216001, '6 hours"), (*retry', 3600L, jours"), (expire’, 1728000L, '2 weeks"), (‘minimum’, 21600L, ‘6 hours*)) § -/DNSany.py nonexistantexampleasdf .uk Using nameservers: ns4.nic.uk, ns5.nic.uk, sec-nom.dns.uk.psi.net, nsi.nic-uk, ns2.nic.uk, ne3.nie.uk Not found. $ ./DNSany.py www.yahoo.com Using nameservers: ns4.yahoo.com, ns5.yahoo.com, ng1.yahoo.com, 182. yahoo. com, 3 yahoo.com CNAME www. yahoo.akadns net. EK, BTA apress.com MMIAR (records) MAM EAM A—ER. wR {Li AH soa records. NT AH—H UA MNES, WBE FINES: $ ./onsany.py . BHAA —TMRAL AMS BHT. Python ASAE ERY82 B4e BAK 4.3.5 DRBWER 95% records —#9 WHE NS. PTR. CNAME Al XK —“BELMHE TAS AA-TEME. TARR IP Mh, CHEOMPBAKAS. GUAR RAAROLA, tame FA ons RR TERIR TT HF. Fi RSE TE RUS ANE. ERI MOT HEE HLS BG any BEM, RTA BAR aa any Hi, RATE TANT THAME, HEREC TAT RE AAT -TSWNARE, 2H dnsany.py MA, FRE: #1 /usr/bin/env python # DNS query program - mple 4 - DNSquery.py import sys, DNS, DNSany, re def getreverse(query) : ""Given the query, returns an appropriate reverse lookup string ADDR.ARPA if query is an IP address; otherwise, returns None. This function is not IPv6-compatible.*** if re.search(**\d+\.\d+\.\de\.\des', query): ts = query.split('.") ts.reverse() turn '.'.join(octets) + *.IN-ADDR.ARPA* return None under 1 def formatline(index, typename, des retval = "8-28 #-5a" ¥ (index, data = data.replace("\n", "\n ") if descr != None and len(descr) retval +=" $-12s" @ (descr + *:") return retval +" " + data DNS. DiscoverNameServers () (sys.argv[1], DNS.Type.ANY) ] address", “pata’, Host name", ‘Alias for’, : ‘Name server") Python MOSS te FEAR4.3 SFA PyDNs #TRSSH 83 while len (queries) : (query, qtype) = queries.pop(0) if query in donequeries: # Don't look up the same thing twice continue donequeries. append (query) print "=" +77 print "Results for %s (lookup type ts)" & \ (query, DNS. Type. typestr (atype) ) print everse (query) © TIP address given; doing reverse lookup using", rev query = rev answers = DNSany.nslookup(query, gtype, verbose = 0) if not len(answers) print *Not found.* count = 0 for answer in answers: tel if answer (‘typename’) print formatline(count, answer['ts "Mail server’, "as, priority $4" $ (answer[‘data'] [1], answer (‘data‘}(0])) queries.append((answer[‘data‘] [1], DNS.Type.A)) elif answer[‘typename") == "SOA": data = "\n" + "\n".join({str(x) for x in answer[*data')]) print formatline( elif answer{'typename’] in descriptions: © formatline(count, answer{‘typename'], descriptions [answer |‘typename']], answer{‘data’)) pename'}, unt, "SOA", ‘Start of authority’, data) else: print formatline(count, answer|‘typename'], None, str (answer ["data"})) answer{‘typename') in [‘CNAME', ‘PIR queries. append( (answer ['data‘], DNS. Type.ANY) ) if answer{'typename'] == 'NS': queries.append((answer[‘data'], DNS.Type.A)) Python FAS tea84 BAS TERK ERA TAR MBAER, Wale fel EA] PyDNS (ARICA) DNS TA) REM FAH. Bs AUG IP SHLAA, HME IN-ADDR. ARPA MNES. BD, MUSE AEBI—7P IP Sth SE 10.21.12.13, MPRA HM 13.12.11.10.1N-ADDR.ARPA. JX DNS HAMA, FAER ARIAT DAA PAL SRR eT AEA HOH, BRR LA Fa SRP PF © SAH, BONA EG ATA. § ./DNSquery.py 65.215.221.149 Results for 65.215.22 type ANY) given; doing reverse lookup using 149.221.215.65.IN-ADDR.ARPA for: 149.144,221.215.65.IN-ADDR. ARPA 1 PTR Host name: waw.apress.com Results for ww.apress.com (lookup type ANY) AIP address: 65.215.221.149 § ./DNSquery.py apress.com Results for apress.com (lookup type ANY) AIP address: 65.215.221.149 MX Mail server: mailtl.apress.com, priority 10 MX Mail server: maildsl.apress.com, priority 20 MX Mail se: mailtibackup.apress.com, priority 30 wx x Ns Mail server: maildslbackup.apress.com, priority 40 t, priority 50 uu-net NS Name server: auth120.ne.uu.net SOA Start of authority authlll.ns.uu.net Mail server: mail Name server: auth! hostmaster.uu.net serial’, 17) (refresh ©, 21600L, ‘6 hours") (retry', 3600L, '1 hours") ‘expire’, 17280002, '2 weeks") 21600L, *6 houi Python M4 GFE TERYResults for mailti-apress.com (lookup type A) 1 AIP address: 65.215.221.147 44 Be Domain Name System (DNS) FF (EF 4 Pi AUK 238 (0H) IP Hit 2 (a) Fe. Python sit socket BURG T —‘MAM RE RAAS DNS HEMHEO. HT RMR, MATL Ti 84 Me DNS 44, (a0 PyDNS. bre CER) AMES 2 MRE IP Hh, CREASE Pho Biel AEE IP HOHE MATE EAL, (FRAN a EP a RIA {GFT ULAR gethostnane() ARPS THRENAR. BLE, MTGE MAS HY EBA. Python P9% te Fete= ROS ERE Advanced Network Operations Python Xf TCPAP AHH, WMG MAF T RS AAMT. COKE BRE FHP, BERTIE. ARPA — MFHT. ATE ST RA eB AAR RT). MOET AI ACE BURLAP TT HE A HP SIRE: © FFF IK socket (Half—open sockets) , “EAT DUE KH —475 EAN: © MAY (Timeouts) . CHER T EAT es. AU RAAT AT LEAR ER © GEER AURIC ET BRET, © MPs, —RULAT C-based Miki ta: © HR (Broadcasts) , EARLS MLA EMU © (EAL IPv6., FRED, © ae FUR MHEAL AED; © (RF poll) Ml select () FIM MRE TAIN. 5.1 >4FFAX socket JHA. socket 42 3X a] —BE AT LIZE socket LiL. AMM, Oat aR a — 7a AH socket, RUSE ARETE FT EAE. BIA socket MA AFF M socket. HT 1H socket FR Python FES ta Fe RE88 SSR BAMBAE FF, FPGA shutdown () HH. MF socket, X-MEN AMM. -EFFM socket ATL APL R RR: © CLEARMASHHMEBCE RRNA. SAT AA socket MMi MIKA shutdown () RSCHNOTAR, A EST EE a DEI. ASAE: © CRAMER RENE, RLAREGRAS— TES socket, RA R—ATAKIEIN socket S180: © CHAT tork() REAR, TUBA LL HMR Re, a A WK socket. socket shutdown () UFR REM AAMHES. 2 Rie TRA, aT BE (EFF shutdown () RMORPRMETIR. ZEALRHAIR F, socket I 1 BM AE BL ARE FEES Te ROP AR SARA. (EA shutdown () H—-TRA LEDER RM EM. Btn: DURIEEORT SA EIHEA T shutdown (1 RBLILEOR ART SORE, — BOHRA TS PRE. CREE) — TAM. Ai RT A RRR AREAS, PLR ARR AA. SALER tork() MERA, Wee — RMR. MRURIL fork (1+ AT socket IK) close () MSAD, RRGORUER TE M5 HAVER REE PAN. OTA RRR AT closet}, RM socket MIE, BLA socekt BANERAIAIE, kee te REMI. Se PROBE RB (EFT UGE MEA shucdown () RECIEMRA, METI socket. AY shutdown) WAGE AP RMSM, HC RIERA socket. FRIAS STREAM: © 0 RAIL RE: 01 RRRIRERS: 0 2 RRA. ABT RAIN ATA, socker BR RECE ROH lL AIST IFT. A shutdown () BRIT, WAT shutdown (0) fi RH shutdown (1), BURAIBAY shutdown (2) B—AAY. Python FESS GPE RY52 mit fa 5.2 #BBt Python 2.3 4 socket 3] AT — SS (U#tE: HAT (timeouts) . HT EAR SHR PM ARR EHR AL Hi BIE 2- Ay AE efi. TOP eH ty Cd WP OR AE SH EI AT A AY, Bd: LE tenet SRARS AONE, TRI MAMET. PLL, a SBT IT A KN Tal MRAP HAR. HOT aE PALE CBI, 4S Web IRI BEI ANE PR BI SBR ISIC DORA EMT nA TSP. BRR UB TA SO A BRE ER FSO A Jal, MBPT ELIE Python 4 SRSA FE FTIR AEE ITO, ELAM AY aT A TO. TERME MES, BATA LUA TRAN SPN, LUE SAGE. MAB ATLL Hamp RR Aw ER. 5 T $i Python ff] socket RA RIM AE DNAE, ME AFSEAH socket ff) settimeout () BM. FIFE MRE SR, Bit eb P RTE. FAS. “AU —7P socket, MR TSR EMT, TARR RE, WAP HES socket. timeout HH. REAPRA RMAF, EHR 3 HPA echoserver.py MMMT — Hite, HORT BTA. #1 fusr/bin/env python # Echo Server with Timeouts -- Chapt import socket, traceback -- timeoutserver.py he Pe # Bind to all interfaces 1423 5 = socket socket (socket .AF_INET, socket .SOCK_STREAM) 8.setsockopt (socket SOL_SOCKET, socket .SO_REUSEADDR, 1) s-bind({host, port)) s.listen(1) clientsock, clientaddr = ¢.accept (1 except Keyboardinterrupt except: traceback.print_exc() continue Python FU te PEMA90 HSS BOMBRE clientsock. settimeout (5) 4 Process the connection try: print "Got connection from", clientsock.getpeernane() while 1 data = clientsock. recy (4096) if not len(data): except (Keyboardinterrupt, Systemexit): except socket timeout: pass except: traceback.print_exc() # Close the connection try: clientsock.close(} except Keyboardinterrupt : raise except: traceback.print_exc() BILLS SMR OT. SETS MB, HAST telnet, EK $1423 HO. ATLL A— 2X, KENT SRRSBRAAK, AM. MRT SPRAREETKN, RRS WF. SEA socker ANAT, EPMA RM EMSRS ERO. MTUIE, MUR SPM RS ETLE, DRAPE, UT SRE. SPU AR KE. ARAMARK, MRAP RRA RH, BREET, Me socket. timeout (iE) BEM T recy () Al sendall () fia. 5.3 MFRS TES LGR A“, RLM TREK ETE. EM TCP HR REPEAL AUN AR, BRARZE BABA T REAP APRS. FRRUM AS Se SiR YZ HR BS Python PIS RFEA A!5.3 ESTH 91 GR. ER GARI WOKS MATH, RE socket HA MINRR TTA. Eee BIT TPE ARLE, ELA Ae aR A OA GE ET TK PAE ATT AT CL AR RIK BL, AF BH RG A — EJB 9D BE FUERA MRA. 5.3.1 EF RSRMRT ERA BED, RED REREE LMM — PPE ROAR. RRR NULL 49 (ZE Python + fi'\0') 3 newline #5 (4E Python #€'\n') . UIRI#FH newline FFF, SERRA 7 HRA AT BAN IK readline) RB HMGR. SRAOPNL, Gili: HTTP. FTP AU SMTP. %/> HS} AEF (KAY newline (ENF FTE AV BEY. WATT. newline HSA AEE XH, FRM R— Se IR SEAN RS AT, ATRL. AF, RS NULL F705 — BRIE. AAA ABE, OSH Pela — UMAR, ETRE A NULL FF. BLL, HERE PRE, EA TALE PARRY, CRAMER CMP, EEE INEM ES. REI Mal AEE ELS: escaping, SUBMIT (data encoding) #1 RET TERE AURA (adjustable end-of-string identifiers) . 5.3.1.1 #8 (Escaping ) ATER escaping, BARR AWARE ELH SER RRA. Blin: WR BRITE GORA newline F7F'\n'. WAT WIZE MA newline PAF 758 AM: — ABREU S «CERRO, MEMES ROBE “+ RTS SHIN newline AEF AEB RABIN, ELE RMS} i, CRB AN — AG REAR T — MRE. NE thE SEE —$ ALSO EET, AS HT. IIE RE \ Python 00S 756 BEAR —§$h T AEE EAT HE, SE Ep ARE MRS BS, RSH 1 BHR TRS. ER, Riicnewl ine> KA newline FFF. Python FUSS SAFE92 BSS BME RS RPE ROAF ed Python PA ax . ALLAWEH Gib newline PAF ene ines Avia! am. ERR EAE Gh (Python 34) ) 3st seas, enewline> “\n" ikit. 5.3.1.2 BUS EUDORA, AER MORRIE RSMO, ASAE base-64 0, ETL ATRYN 7 75 Be AEE MY — HERI BR. Python ff) base6s BUSRTT UL AMS IERRIR ANI HES MRT SORTA“, AIL SH RBC 5.3.1.3 WARIS TSSRMRRT RUBEN AINE, MRTEREE HZ, ROEM ERAT. MLA UTC ARBEDLIS AKT EHR, IPE EAE RR. BMT MATT RUEA A newlines SICA SSRI KAR, FLL ERAS MEME He. RE PAIN TE RET MAE, WIRD TT AEA Py EI EB RA NAL TERRE NTE. 5.3.2 BBAAMMENE CRATE, CARRE TERMS, CREAM KM. BT SHE FABER KE BR REAR, RE UAE REE Z ERR ER, BIN, ai RED ORSAANB se BEEF ALOE A, OTL OT ERRATA 5 A me ES ‘© (leading zeros) . MGR) LLRIk— AF ASCH PUAVRE HE IX AE HOME. ASMA ‘A G9 AE SHELA Te ER; A, ETL LE A AS EI RS OB SSPE T Sata Ae EI AT ABA ARR Python MESS Fe HA5.4 BEM S EMS 83 5.4 BRAS TMS AE TERA RS | AS UE OAT OR, ATE © PT ASCH NETRA HT: © PII HIF, RUE 16 RR 32 LK. BADER ART AN, HERA, RHAATAERB PT EMAS ML WEAR. RUB ATEARTU-Site. SRE RTE CSTR RMIT AE Ha, UTE CAE, Rak aa EGET PE ER EPS LEE, ARSE PAL, LG ASF A Wik. AT ROE TAG, ARENA, PE. ERE CE CCH, CR RRS UE. RCTS, ARES , QoS BUFR RA MRA TIE Python fM) struct BERET JESUECE Python Al EE MGEZ RMA. struct MER UAHA FFE HE a ERED 5 ANG AB Be hf AE — ENR, RRS SP RET RRS RAMP, TRL EEA: Hy GAT 16 SONI, 1, BAF 32 ALONE. WT ik Python Sik sn fe—, MRE MSHS. RO A seruct BUA MSF WPT RAM. FRR TF, CATS aE AF SA FORTS. #1/usr/bin/env python # Network Byte Order - Chapter 5 - nbo.py import struct, sys def htons (nun) return struct.pack('!H", num) def hton! (num) : return struct.pack(‘!T', num) def ntohs (data) : return struct .unpack('! + data) (0) Python PES Ga Pe Hi94 BSB BAM def ntohl (data) : return struct -unpack(*!I", data) [0] def sendstring (data) : return htonl(len(data)) + data print “Enter a string:* str = sys.stdin.read}ine().rstrip() print repr (sendstring(str)) SMA RMLAT ELSE Python 4H int, long Al string. string Bi ORAP-AHE-A CE socket ESQ UeAR. FIRE OLED, ROUT 32 ORR ROR ORE Se AIRE, “CRO TRAIL AGB MF. SETAE » BRABAU FMM R: 8 ./nbo.py Enter a string: Test. \x00\x00\x00\x05Test.* $ ./nbo.py Enter a string: Hello, I am testing thie "\x00\x00\x00\x18Hello, I am testing this! Ban tse LAR 4 aE, PULP PARAL T Python ff) repr () BBCKER. repr () BS S48 (AME Python EAE P MAS PAK oR. AT GER EA THER. CR TAF HE, CBE 4 PAS 32 AAEM. DROME 5, CARES “vest.” RCE. ER MAF ERI TAME IE 18, BLATHER 24, RUS ON BE. EL RM Python tH socket PRGA ACM BM, HM: neonl(). SERV RATE FABIA. EAR His CB — UE He BEAR Python PAM F IRM AAT AL. BY struct RAT BS ANT, FRLGX ERA RE socket MUR neon] ( BMA. Python MAS Me feat5.5 ER meu 98 5.5 (SFA Sus REKSM TCPIP HECK AT ULF TEIN CLAN) F, tH AU CLALZE Internet b, AB 4ECE— EARL. SAM, ARS ET HM. SHER ANREID TCP ie Bh, ‘ES BE UDP REBLN. 38%, SE RE—P UDP BM, CRM — fe PALA — GLE. TN P44 UDP (EMM, CRRA BEE RM LTA. Aa liNA, APR BORG AE 8 LE BRT TERT, SUAS OS, ABT OS. SOE REO TARO, WRC ER. AM, ORME. LAE, RR MR BE, HRSA MLS BIBL. THR UE FE EAA FL LR nh: © BARRIS: Bit, —T HH BLAT RES Rey RR TH ATI ET FRG: ESE: RL CIS HORS, TRL EMT ITAL BEM MRS. BPM ONT H, PERISH LE DUT RDO BLER. Gd, — NRE SRE HABA, TRER— RRA ETM RAA. ABICRMIZ, BREE SR BHP. SE socket BEA HEME” AE ARI, EAL MLLINTA ©. cersockope (socket .SoL_ SOCKET, socket .SO_BROADCAST, 1) (Pi socket THM. BREA, ATLL PRAHEAE “
” . WTAE ARMER IP HALAS. EP, APART. RTT AUR. ARERR: Python FUSS PBR96 BSB BOMB #1 /usr/bin/env python | # UDP Broadcast Server - Chapter 5 - beastreceiver.py import socket, traceback # Bind to all interfaces host port = 51423 8 = socket .socket (socket .AF_LINET, socket .SOCK_DGRAM) s.setsockopt (socket .SOL_SOCKET, socket .SO_REUSEADDR, 1) SOCKET, socket .SO_BROADCAST, 1} 8. setsockopt (socket s-bind( (host, port)) while 1: try: message, address = s.recvfrom(6192) print "Got data from*, address # Acknowledge it. s.sendto(*I am here’, address) except (Keyboardinterrupt, SystemExit): except: traceback.print_exc() TRER, JRE 2 Hb UDP WSS BIR. SL, MTS UDP BB Be, ERTL A HABE setsockopt () NW, RAEN INL MORE, EADHE FREE” BANE |B OED #!/usr/bin/eny python # Broadcast Sender - Chapter 5 - beastsender.py import socket, sys dest = (‘
*, 51423) 8 = socket ..socket (socket .AF_LINET, socket .SOCK_DGRAM) 8. setsockopt (socket .SOL_SOCKET, socket .SO_BROADCAST, s.sendto(*Hello", dest) Print “Looking for replies; press Ctrl-C to stop.* while 1: (buf, address) = s.recvfrom(2048) if not len(buf) : break print "Received from ts: ts* % (address, buf) Python PERE RY5.6 FR IPv6 97 WT BTR MAE, (ERLE BCT Gm CH Lee eA AL BL, UEMATSU BU CSIRO AIR). EMEA P-RCTHS BATPLR SEATS PMA, ADRAC. CF ON ANATOLI EAT a0: $ -/beastaender -py Looking for replies; press ctrl-c to stop Received from (*10.200.0.5", $1423): I am here Received from (*10.200.0.7", $1423): 1 am here RTA. SMR, AGA NOBLE Fie HE REEF. CAS Ts HER, BRAT HR, ABRAM. TSE bh, MRR ARE TRS BRIERE — AEM. LE, AGREE A: DAH. BR SEGAL, PAAR BRR OR GR UR RS. RAS Pe ORS & ENA HAREM. GR, AWS HOAs M DHCP, MATURE HAL the 5.6 {FA IPv6 ABP BAKE SNF BEY BB TCPIP OR 4, LEI TIRAN IPva. ME, IPva BATE Internet, RAFTERS LOE Bete TED, PERL HY gk Hh ht EVR]. IPva A/S 32 ALAS TA), HBS FATAL KI 40 AZAMHE. TPv6 4 128 Leas Qi, BBW EBT LL GE 3.40 * 10% 38 ME. (EE Td HECHT AY 7.910922 fi. ERE, HT SIRT, ROMER LA LAURA AE IIR A, v4 Hu MR Rh al ET ATR ITE, AGAR RF —ROL, IPv6. CHALLE ERT RAP. RD BTA SS RT ARE RES THAR BU AINA TET. aE Python 4030 Me ARP REE A. Python Fike Hey98 BSS SME PVs BR ZE Imernet LHe 1H BELA — TALL, CANS LEAT ERMA. IPvd 1D PUMRAR FE 4. CE 1979 SE —MPPK AL HPAX (Stream Protocol) (ST. ST+, ST2 Al ST2+) BOPP WERE ION 5. BPEL, SSF IP A RTRRAS SURE we AF CF 6 2478 Python 28S 124 IPv6 WUFEFF AT. OL Se Ae aE EIR ABT RAD UPd AAP. THER, Ive MDH RAN IPva fbset —AN. 5.6.1 PTH Ht SEHF IPV6 HUBS, OB I— HEAL, RAE Se RF — Be OR AT Pv ak thy IP v6 HEALTH. ERE ABE Ree ALA IPv4, URE IPv6 ERI BE. th MBAR SE FOL, SEAPORT, a FEAL Sb ORM BABB PVs (GF AEA AOL FAD BER port = 51423 host = ‘localhost’ 5 = socket .socket (socket .AF_INET, socket .SOCK_STREAM) S.connect ({host, po: BY RMR socket.ar_iner RiGAlT IPv4 socket: 4 IPv6 P, Us HEAD socket AF_INET6. Alb, GRAMT MIR, AMA MRR. RET UE socket .getaddrinfo(). getaddrinfo() AMF] Ltt Ara A DX RRL. FE POR OPEAE AF: #1 /usr/bin/env python # getaddrinfo() display - chapter 5 - getaddrinfo.py # Give a host and a port on the command line import socket, sys host, port = sys.arov[1:) Python PAS FEHR a5.6 FH IPve 99 # Look up the given data results = socket .getaddrinfo(host, port, 0, socket .SOCK_STREAM) # We may get multiple results back. Display each o for result in results: # Display a separator line to print "=" * 60 ually segment one result from the next # Print whether we got back an TPv4 or IPv6 result if result (0) == socket-AF_INET: print "Family: AF_INET* elif result [0] == socket .AF_INET6: print "Family: AF_INET6* # It's not rPv4 or TPvé, so we don't know about it. Just print # out its protecol number. print *Family:*, result [0) agram (UDP) result. # Indicate whether it's a stream (TCE) or if result(1] == socket .SOCK_STREAM print "Socket Type: SOCK_STREAM* elif result[1} == socket .Sock_DGRAM print “Socket Type: SOCK_DGRAM* # Display al bits of information from getaddrinfo() print "Protocol:*, result (2) result (3] ress:", result [4] print "Canonical Name: print "Socket Ad FAA Sc Pv A EAT, RA § ./getaddrinfo.py movi yahoo.com http Family: AB_INET Socket Type: SOCK_STREAM Protocol: 6 Canonical Name: Socket Address: ("66.218.71.147", 80) SEA A BC BEI T 5 ERB. socket HLH BI— “MAE AML (socket HAL) MIBTATA EL. Hitt getaddrinto() HA RABIES RAR, oF: Python PUMPER RY100 S5e SOME § ./getaddrinfo.py www. ipv6.org http Family: AF_INETS Socket Type: SOCK_STREAM Protocol: 6 Canonical Name Socket Address: (*2001:6b0:1:ea:a00:20ff:fe8f:708f", 80, 0, 0) Family: AP_INET Socket Type: SOCK_STREAM Protocol: 6 Canonical Na Socket Address: (‘130.237.234.41", 80) RPA #, www.ipv6.org 12 PRR 8 FM Wy [Pv Al IPV6 i XT HHL, getaddrinfo() BASSE Mi bk. RP RES aR AE TA [Pv4 Hkh, AL IPv6. Att LAR EBA PVE NS R WHE CRRA cetaddrinto.py, EMA GE Ivo MAR. WT Rea getaddrinfo() AVA IPv6 MSR, LARA IPv6 Lis, OA) AL Ive. HRB RE WAI MA DNS RUG IPv6 44 5RA0 IPv6 HEA BIL. ASIN RTE RRA KIS IPv6. MERE SEES IPv6 EAE, LAE IPv6 RRB RR RST LAT. SLSR AE BA 79 Fl IPG HEAR, 8s SEE RE SE TS SH IPO FRY 09 Python th J2 03 8 IPv6 TORO RAT. INRA RETR, ELRTORE RS, IRIE He Python, (7% Python J CF AB ETE Sea BERENS AR SNAP HE. 5.6.2 XBFamilySw AGIA cetaddrintoc MAR, CHRERRNR. HEP RSM oT SLADH LEE, ZEA sock_stRean KIAR— TCP socket (46 tH ATLL] sock_DoRAM HIER UDP socket) . Ai — HAASE OL, Gn: ariner A ar_iner6. RTF RHEL Python FES PEA5.6 @FR IPv6 101 T+ zero, TORRE, MAVET getaddrinto() MARA. JER, WR Pd BRA, Ee ANB IPs ER, RATE Iv HL ARE Fs BA SAH [hve AR. MT — PARAL LL Pv6 GEE AM, th ETT AAR Ive Hot A. FiOS LIER IPv4, OAT IPv4, SAR A IPv6. #!/usr/bin/env python # Connect Example with IPv6 Awareness - Chapter 5 - ipvéconnect .py import socket, sys def getaddrinfo_pref (host, port, socktype, familypreference = socket .AF_INET! "'*Given a host, port, and socktype (usually socket .SOCK_STREAM or Socket .SOCK_DGRAM), looks up information with both IPv4 and IPvé. If information is found corresponding to the familypreference, it is returned. Otherwise, any information found is returned. The family preference defaults to IPv4 (socket .AF_INET) but you could also set it to socket .AF_INET6 for IPv6. ‘The return value is the appropriate tuple returned from socket .getaddrinfo(). results = socket .getaddrinfo(host, port, 0, socktype) for result in results: if result (0) == familypreference: return result return results {0} host = sys.argv(1] port = ‘http’ © = getaddrinfo_pref (host, port, socket .SOCK_STREAM) print "Connecting to", ¢(4) 8 = socket socket (c{0], ¢[1)) 8.connect (¢[4]) 8.sendall(*HEAD / HPTP/1.0\n\n") while 1: buf = s.recv(4096) if not len!buf): break sys. stdout write (buf) Python PS Se fA102 B5S BAMBRE ETA MF MET OR, MUR Iva HURL AE TE, EARP SEIT IPvd EER. MURA FETE, SW IPve. $ ./4pvéconnect .py www. ipv6.org Connecting to (°130.237.234.41", 80) HITP/1.1 200 OK § ./Apv6connect .py wew.ipv6.bieringer.de Connecting to (*2001:7b0:1101:2::146:6", 80, 0, 0) HTTP/1.1 200 OK 5.7 Be BRA HIE RERAAM LES TARE. BL, —P RIBERA, te 58H A loopback SERRE HEM. LF) RAAT loopback HEA, EA — PAREN, MLL Ee DLA He Ca) ~) BL EASBEREMET Efe. “EA HRKEIE 127.0.0.1 A localhost. SMEN BTL ATE BOM IP ht, MAE RL, CRRA LAS IP Hh She AB PMA S BOR S BRET EH] SBE BIE TL bi. AIR, BASE BLT BT HARES: ” 4 Bind to all interfaces 51423, B.bind( (host, port) EARS AO A I 51423 CN. AR, GARTEN. RT, AMER FeIVL, lt © RFRA TRARMEMMAAST IP ME, — IP WHA — TAR A. SEAVER A RS BA FE ET EC IP Sich: © HTREZSNRA, —TRERB BA SBIR MER. RMR FE, ER HEB 127.0.0.1; Python MAREE A5.7 SREP PREOIOME 103 0 HKRREHRRAS ATA AMMO. Meee, eT AOA tL URI Se BE ON PI © ERT STABLE bi TNS OME RS ER TR. ERAT), SHBA-TRSS, HARAANAAN. VER PRR, LER EB) PAH. GE. RS RESET A RE BE HE. iT, HT AE IFO, RG RAARS FT Hh, FRA: #1 /usr/bin/env python # Echo Server Bound to Specific Address - Chapter 5 - bindserver.py import socket, traceback host = '127.0.0.1° port = 51423 8 = socket .socket (socket .AF_INET, socket .SOCK_STREAM) S.setsockopt (socket .S0L_SOCKET, socket .S0_REUSEADDR, 1) s-bind( (host, port)) s.listen(1) while 1: clientsock, clientaddr = s.accept (1 # Process the connection Print "Got connection from, clientsock.getpeername() = clientsock. recv(4096) len (data) break clientsock.sendall (data) # Close the connection clientsock.close() HTM BZ, BARRE SRE MR. OUR MAS IP HE AEE 127.0.0.1 SOSEBL, iM A AY DLE ae ARH ANY 51423 EC, RRR ROR RE RE FE AOR Ha SCADA OAR Se tt. Python FAS tee
You might also like
Python for Cyber Security
PDF
No ratings yet
Python for Cyber Security
214 pages
Improved M4 - AR15 Carbine Zero Target 50M
PDF
100% (3)
Improved M4 - AR15 Carbine Zero Target 50M
5 pages
Improved M4 - AR15 Carbine Zero Target PDF
PDF
No ratings yet
Improved M4 - AR15 Carbine Zero Target PDF
5 pages
Improved M4 - AR15 Carbine Zero Target 100M
PDF
No ratings yet
Improved M4 - AR15 Carbine Zero Target 100M
5 pages
Python网络编程基础 (John Goerzen) (Z-Library)
PDF
No ratings yet
Python网络编程基础 (John Goerzen) (Z-Library)
537 pages
Python网络编程第三版
PDF
No ratings yet
Python网络编程第三版
364 pages
PYTHON高级编程
PDF
No ratings yet
PYTHON高级编程
421 pages
The Python Standard Library
PDF
No ratings yet
The Python Standard Library
8 pages
,,,,,,,,,,,,,,,,PYTHON.P NP
PDF
No ratings yet
,,,,,,,,,,,,,,,,PYTHON.P NP
154 pages
Using
PDF
No ratings yet
Using
82 pages
PYTHON-1 Introduction, Installation Steps, Numbers, Python Objects, Control Statements
PDF
No ratings yet
PYTHON-1 Introduction, Installation Steps, Numbers, Python Objects, Control Statements
43 pages
Python For System Administrators
PDF
No ratings yet
Python For System Administrators
25 pages
Installing
PDF
No ratings yet
Installing
53 pages
Using
PDF
No ratings yet
Using
106 pages
Using
PDF
No ratings yet
Using
110 pages
python入门
PDF
No ratings yet
python入门
252 pages
Python Material Narayana Sir PDF
PDF
No ratings yet
Python Material Narayana Sir PDF
594 pages
python游戏编程入门(扫描版)
PDF
No ratings yet
python游戏编程入门(扫描版)
33 pages
Installing PDF
PDF
No ratings yet
Installing PDF
50 pages
Distributing
PDF
No ratings yet
Distributing
55 pages
Programming With Python PWP Tech Publication Textbook
PDF
0% (1)
Programming With Python PWP Tech Publication Textbook
40 pages
Python Setup and Usage: Guido Van Rossum and The Python Development Team
PDF
No ratings yet
Python Setup and Usage: Guido Van Rossum and The Python Development Team
102 pages
python-full-stack-development-summer-internship-report
PDF
No ratings yet
python-full-stack-development-summer-internship-report
43 pages
Using
PDF
No ratings yet
Using
106 pages
Intro to Python
PDF
No ratings yet
Intro to Python
44 pages
Using
PDF
No ratings yet
Using
112 pages
Using
PDF
No ratings yet
Using
112 pages
Installing
PDF
No ratings yet
Installing
53 pages
Python Programming PDF Myanmar PDF Files Download
PDF
No ratings yet
Python Programming PDF Myanmar PDF Files Download
6 pages
Python Installing
PDF
No ratings yet
Python Installing
52 pages
Installing
PDF
No ratings yet
Installing
52 pages
Installing
PDF
No ratings yet
Installing
52 pages
GE3151 Problem Solving and Python Programming Lecture Notes 1
PDF
No ratings yet
GE3151 Problem Solving and Python Programming Lecture Notes 1
129 pages
Pyneng Readthedocs Io en Latest
PDF
No ratings yet
Pyneng Readthedocs Io en Latest
702 pages
Python For Network Engineers
PDF
100% (1)
Python For Network Engineers
723 pages
Python Guide Documentation: Release 0.0.1
PDF
No ratings yet
Python Guide Documentation: Release 0.0.1
167 pages
Reitz - Python Guide
PDF
No ratings yet
Reitz - Python Guide
123 pages
Python Guide PDF
PDF
No ratings yet
Python Guide PDF
169 pages
Installing
PDF
No ratings yet
Installing
56 pages
Distributing Python Modules: Guido Van Rossum and The Python Development Team
PDF
No ratings yet
Distributing Python Modules: Guido Van Rossum and The Python Development Team
52 pages
Distributing
PDF
No ratings yet
Distributing
54 pages
Internet of Things With Python
PDF
No ratings yet
Internet of Things With Python
108 pages
Whatsnew in Pyyyyy
PDF
No ratings yet
Whatsnew in Pyyyyy
32 pages
Using
PDF
No ratings yet
Using
112 pages
Python For Sec Introduction
PDF
No ratings yet
Python For Sec Introduction
19 pages
A01 IOT Exp1 Exp4
PDF
No ratings yet
A01 IOT Exp1 Exp4
17 pages
Using
PDF
No ratings yet
Using
112 pages
Python Book On Python Programming Language
PDF
No ratings yet
Python Book On Python Programming Language
54 pages
Distributing
PDF
No ratings yet
Distributing
55 pages
Python Unit I
PDF
No ratings yet
Python Unit I
24 pages
Using
PDF
No ratings yet
Using
139 pages
Python Intro
PDF
No ratings yet
Python Intro
28 pages
Installing
PDF
No ratings yet
Installing
55 pages
What's New in Python: A. M. Kuchling
PDF
No ratings yet
What's New in Python: A. M. Kuchling
24 pages
Using
PDF
No ratings yet
Using
137 pages
Python 3.13 -installing
PDF
No ratings yet
Python 3.13 -installing
59 pages
Complete Download (Ebook) web2py by Massimo Di Pierro ISBN 9780557604142, 0557604141 PDF All Chapters
PDF
100% (2)
Complete Download (Ebook) web2py by Massimo Di Pierro ISBN 9780557604142, 0557604141 PDF All Chapters
67 pages
Raspberry Pi and Python
PDF
No ratings yet
Raspberry Pi and Python
108 pages
Distributing
PDF
No ratings yet
Distributing
54 pages
Wild But Not Crazy
PDF
No ratings yet
Wild But Not Crazy
5 pages
Improved M16A2 - A3 - A4 Zero Target
PDF
No ratings yet
Improved M16A2 - A3 - A4 Zero Target
6 pages
Improved AR15A2 - A3 - A4 Zero Target 50M
PDF
No ratings yet
Improved AR15A2 - A3 - A4 Zero Target 50M
5 pages
Improved AR15 OpticTarget
PDF
No ratings yet
Improved AR15 OpticTarget
5 pages
Improved AR15A2 - A3 - A4 Zero Target 50M
PDF
No ratings yet
Improved AR15A2 - A3 - A4 Zero Target 50M
5 pages
Improved AR15 Optic Target 50M
PDF
No ratings yet
Improved AR15 Optic Target 50M
5 pages
Improved AR15 Optic Target 100M
PDF
No ratings yet
Improved AR15 Optic Target 100M
5 pages
Red Dot 25yd50
PDF
No ratings yet
Red Dot 25yd50
1 page
Red Dot 50yd
PDF
No ratings yet
Red Dot 50yd
1 page
Red Dot 25yd50
PDF
No ratings yet
Red Dot 25yd50
1 page
032d Trading Edge Visualiser V2.0
PDF
No ratings yet
032d Trading Edge Visualiser V2.0
121 pages
Strategic Swiss Trading System by Chuck Lebeau
PDF
No ratings yet
Strategic Swiss Trading System by Chuck Lebeau
16 pages
System Verilog For Design Study Notes
PDF
No ratings yet
System Verilog For Design Study Notes
1 page
002a Risk of Ruin Simulator
PDF
No ratings yet
002a Risk of Ruin Simulator
4 pages
(Quantitative Finance Collector) PDF
PDF
No ratings yet
(Quantitative Finance Collector) PDF
57 pages
The SPY-TLT Universal Investment Strategy (UIS)
PDF
No ratings yet
The SPY-TLT Universal Investment Strategy (UIS)
9 pages
5 Basic Quant Strategies
PDF
75% (4)
5 Basic Quant Strategies
24 pages
050c Nelson Freeburg On Developing The Perfect Trading System
PDF
100% (2)
050c Nelson Freeburg On Developing The Perfect Trading System
9 pages
SI Highlights Code Change. Understand Does Not. Understand Has More Graph Such As Flow Chart. SI Does Not
PDF
No ratings yet
SI Highlights Code Change. Understand Does Not. Understand Has More Graph Such As Flow Chart. SI Does Not
1 page
Related titles
Click to expand Related Titles
Carousel Previous
Carousel Next
Python for Cyber Security
PDF
Python for Cyber Security
Improved M4 - AR15 Carbine Zero Target 50M
PDF
Improved M4 - AR15 Carbine Zero Target 50M
Improved M4 - AR15 Carbine Zero Target PDF
PDF
Improved M4 - AR15 Carbine Zero Target PDF
Improved M4 - AR15 Carbine Zero Target 100M
PDF
Improved M4 - AR15 Carbine Zero Target 100M
Python网络编程基础 (John Goerzen) (Z-Library)
PDF
Python网络编程基础 (John Goerzen) (Z-Library)
Python网络编程第三版
PDF
Python网络编程第三版
PYTHON高级编程
PDF
PYTHON高级编程
The Python Standard Library
PDF
The Python Standard Library
,,,,,,,,,,,,,,,,PYTHON.P NP
PDF
,,,,,,,,,,,,,,,,PYTHON.P NP
Using
PDF
Using
PYTHON-1 Introduction, Installation Steps, Numbers, Python Objects, Control Statements
PDF
PYTHON-1 Introduction, Installation Steps, Numbers, Python Objects, Control Statements
Python For System Administrators
PDF
Python For System Administrators
Installing
PDF
Installing
Using
PDF
Using
Using
PDF
Using
python入门
PDF
python入门
Python Material Narayana Sir PDF
PDF
Python Material Narayana Sir PDF
python游戏编程入门(扫描版)
PDF
python游戏编程入门(扫描版)
Installing PDF
PDF
Installing PDF
Distributing
PDF
Distributing
Programming With Python PWP Tech Publication Textbook
PDF
Programming With Python PWP Tech Publication Textbook
Python Setup and Usage: Guido Van Rossum and The Python Development Team
PDF
Python Setup and Usage: Guido Van Rossum and The Python Development Team
python-full-stack-development-summer-internship-report
PDF
python-full-stack-development-summer-internship-report
Using
PDF
Using
Intro to Python
PDF
Intro to Python
Using
PDF
Using
Using
PDF
Using
Installing
PDF
Installing
Python Programming PDF Myanmar PDF Files Download
PDF
Python Programming PDF Myanmar PDF Files Download
Python Installing
PDF
Python Installing
Installing
PDF
Installing
Installing
PDF
Installing
GE3151 Problem Solving and Python Programming Lecture Notes 1
PDF
GE3151 Problem Solving and Python Programming Lecture Notes 1
Pyneng Readthedocs Io en Latest
PDF
Pyneng Readthedocs Io en Latest
Python For Network Engineers
PDF
Python For Network Engineers
Python Guide Documentation: Release 0.0.1
PDF
Python Guide Documentation: Release 0.0.1
Reitz - Python Guide
PDF
Reitz - Python Guide
Python Guide PDF
PDF
Python Guide PDF
Installing
PDF
Installing
Distributing Python Modules: Guido Van Rossum and The Python Development Team
PDF
Distributing Python Modules: Guido Van Rossum and The Python Development Team
Distributing
PDF
Distributing
Internet of Things With Python
PDF
Internet of Things With Python
Whatsnew in Pyyyyy
PDF
Whatsnew in Pyyyyy
Using
PDF
Using
Python For Sec Introduction
PDF
Python For Sec Introduction
A01 IOT Exp1 Exp4
PDF
A01 IOT Exp1 Exp4
Using
PDF
Using
Python Book On Python Programming Language
PDF
Python Book On Python Programming Language
Distributing
PDF
Distributing
Python Unit I
PDF
Python Unit I
Using
PDF
Using
Python Intro
PDF
Python Intro
Installing
PDF
Installing
What's New in Python: A. M. Kuchling
PDF
What's New in Python: A. M. Kuchling
Using
PDF
Using
Python 3.13 -installing
PDF
Python 3.13 -installing
Complete Download (Ebook) web2py by Massimo Di Pierro ISBN 9780557604142, 0557604141 PDF All Chapters
PDF
Complete Download (Ebook) web2py by Massimo Di Pierro ISBN 9780557604142, 0557604141 PDF All Chapters
Raspberry Pi and Python
PDF
Raspberry Pi and Python
Distributing
PDF
Distributing
Wild But Not Crazy
PDF
Wild But Not Crazy
Improved M16A2 - A3 - A4 Zero Target
PDF
Improved M16A2 - A3 - A4 Zero Target
Improved AR15A2 - A3 - A4 Zero Target 50M
PDF
Improved AR15A2 - A3 - A4 Zero Target 50M
Improved AR15 OpticTarget
PDF
Improved AR15 OpticTarget
Improved AR15A2 - A3 - A4 Zero Target 50M
PDF
Improved AR15A2 - A3 - A4 Zero Target 50M
Improved AR15 Optic Target 50M
PDF
Improved AR15 Optic Target 50M
Improved AR15 Optic Target 100M
PDF
Improved AR15 Optic Target 100M
Red Dot 25yd50
PDF
Red Dot 25yd50
Red Dot 50yd
PDF
Red Dot 50yd
Red Dot 25yd50
PDF
Red Dot 25yd50
032d Trading Edge Visualiser V2.0
PDF
032d Trading Edge Visualiser V2.0
Strategic Swiss Trading System by Chuck Lebeau
PDF
Strategic Swiss Trading System by Chuck Lebeau
System Verilog For Design Study Notes
PDF
System Verilog For Design Study Notes
002a Risk of Ruin Simulator
PDF
002a Risk of Ruin Simulator
(Quantitative Finance Collector) PDF
PDF
(Quantitative Finance Collector) PDF
The SPY-TLT Universal Investment Strategy (UIS)
PDF
The SPY-TLT Universal Investment Strategy (UIS)
5 Basic Quant Strategies
PDF
5 Basic Quant Strategies
050c Nelson Freeburg On Developing The Perfect Trading System
PDF
050c Nelson Freeburg On Developing The Perfect Trading System
SI Highlights Code Change. Understand Does Not. Understand Has More Graph Such As Flow Chart. SI Does Not
PDF
SI Highlights Code Change. Understand Does Not. Understand Has More Graph Such As Flow Chart. SI Does Not