рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░ рдХрд╛ рдорд╕реНрддрд┐рд╖реНрдХ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ?

рдЧреБрдб рдбреЗ.

рдмреИрд╢ рдореЗрдВ рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░ рдЧрдпрд╛ред рдореИрдВ рдЖрдкрдХреЛ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдХреНрдпрд╛-рдХреНрдпрд╛ рдЕрд╢реНрд▓реАрд▓ рдмрд╛рддреЗрдВ рдФрд░ рдмреИрд╕рд╛рдЦрд┐рдпрд╛рдВ рд▓рд┐рдЦреАрдВ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдореЗрд░реЗ рдкрд╛рд╕ рдЬреНрдЮрд╛рди рдХрд╛ рднрдВрдбрд╛рд░ рдирд╣реАрдВ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдПрдХ рдХреИрд░рд┐рдХреЗрдЪрд░ред

рдХрд╛рд░реНрдп


рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЧрдпрд╛:

  • рд╡рд░реНрдЧреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рдХрдИ рдЫрдВрдж рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП
  • рджреЛ рд╢рдмреНрджреЛрдВ рдХреА рдЕрдиреЗрдХ рдЫрдВрджреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд┐рдпрд╛

рдХрд┐рд╕ рд▓рд┐рдП? рдЦрд╝реИрд░, рдмрд╕ рдЗрддрдирд╛ рд╣реА - рдФрд░ рдпрд╣реА рд╣реИред
рдХреМрди рдирд╣реАрдВ рдЬрд╛рдирддрд╛, рдПрдХ рд╡рд░реНрдЧ рддреБрдХ (рдЖрдо рдмреЛрд▓рдЪрд╛рд▓ рдореЗрдВ - рдПрдХ рд╡рд░реНрдЧ) рджреЛ рд╢рдмреНрдж рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╡рд░реНрддрдиреА рдХреЗ рдЕрдВрддрд┐рдо рджреЛ рдЕрдХреНрд╖рд░ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рдЬреЛ (рдЕрдХреНрд╕рд░, рдпрд╣реА рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬ рд╣реИ) рдЙрдиреНрд╣реЗрдВ рдПрдХ рддреБрдХ рдмрдирд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧреБрд▓рд╛рдм рдардВрдвреЗ рд╣реЛрддреЗ рд╣реИрдВ; рдЯрд╛рдпрд░ - рдХрд╛рд░. рдЖрдзреБрдирд┐рдХ рдЫрдВрджреАрдХрд░рдг рдореЗрдВ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрдирдХреА рдЖрджрд┐рдорддрд╛ рдХреЗ рдХрд╛рд░рдг рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рд╕реНрд╡реАрдХреГрдд рдирд╣реАрдВ рд╣реИред

рд╕рдорд╛рдзрд╛рди


рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрд╛ рдХрд┐ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╕рдорд╛рдзрд╛рди рдмреИрд╢ рдореЗрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрдирд╛ рдерд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рдХрд╡рд┐рддрд╛ рдЬрдирд░реЗрдЯрд░ - HOST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЙрдиреНрд╣реЗрдВ рд╡реНрдпрдВрдЬрди рджреНрд╡рд╛рд░рд╛ рдЪреБрдирддрд╛ рд╣реИ, рди рдХрд┐ рд╡рд░реНрддрдиреА рджреНрд╡рд╛рд░рд╛ред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╣реЛрд╕реНрдЯ? рдХреНрдпреЛрдВрдХрд┐ рдпрджрд┐ рдЖрдк рд╕рд╛рдЗрдЯ рдХрд╛ рдЕрд╕рд▓реА рдирд╛рдо рдмрддрд╛рдПрдВрдЧреЗ рддреЛ рд╡реЗ рдХрд╣реЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рдЬреНрдЮрд╛рдкрди рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рдХреНрдпреЛрдВ рди рд░рдЦреЗрдВ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реНрдпрдВрдЬрди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдЫрдВрджреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рд▓рд╛рдн рдХреЗ рдмрд╛рд╡рдЬреВрдж, рд╡рд╣ рдЕрднреА рднреА рдЕрдХреНрд╕рд░ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВред рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдЕрднреА рднреА рдЕрдкрдиреЗ рдорд╕реНрддрд┐рд╖реНрдХ рд╕реЗ рд╕реЛрдЪрдирд╛ рд╣реЛрдЧрд╛, рдЯреИрдм рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рд╕рдордп рдмрд┐рддрд╛рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рджреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╡рд┐рддрд╛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рджреЛрд╣рд░рд╛рдП рдЧрдП рд╢рдмреНрджреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░рдиреЗ рдореЗрдВ рдКрд░реНрдЬрд╛ рдЦрд░реНрдЪ рдХрд░рдиреА рд╣реЛрдЧреАред

рдЬреЛрд░рджрд╛рд░ рддреБрдХрдмрдВрджреА рд╣реЛ рд░рд╣реА рд╣реИ

рдореБрдЭреЗ рдХреНрдпрд╛ рдкрддрд╛? рдореБрдЭреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рд╣реИ wget, рдЬреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдкреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдареАрдХ рд╣реИ, рдЪрд▓рд┐рдП рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реИрдВ - рд╣рдореЗрдВ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ HTML рдкреГрд╖реНрда рдорд┐рд▓рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рдПрдХ рддреБрдХрдмрдВрджреА рд╡рд╛рд▓реЗ рд╢рдмреНрдж рдХреЗ рд╕рд╛рде рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП "рдпрд╣рд╛рдВ" рд╢рдмреНрдж рдЦреЛрдЬреЗрдВ:

wget https://HOST/rifma/╨╖╨┤╨╡╤Б╤М

рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЗрд╡рд▓ рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЪрд╛рд╣рд┐рдП, рдореИрдВ рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬрд╝реЛрдВ рд╕реЗ рдХреИрд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдБ? рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢рдмреНрджреЛрдВ рдХреА рд╕реВрдЪреА, рдЪрд╛рд╣реЗ рд╡рд╣ рдХрд┐рддрдиреА рднреА рдЕрдЬреАрдм рдХреНрдпреЛрдВ рди рд╣реЛ, рдПрдХ рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрд╡рд░реВрдкрд┐рдд рд╣реИ, рдФрд░ рд╢рдмреНрдж рдЯреИрдЧ рдореЗрдВ рд╣реИрдВред рдЦреИрд░, рд╣рдорд╛рд░реА рдмрдбрд╝реА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ. рдкреНрдпрд╛рд╕ - рдЖрдЗрдП рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦреЗрдВ:

cat $word | grep '<li>' | sed -e "s%<li>%%" | sed -e "s%</li>%%" | sed -e "s/ //g" | sed -e "/^$/d" 1> $word

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рд╡рд░реНрдб рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдЯреИрдЧ рд╣реЛрддрд╛ рд╣реИ - рд╣рдореЗрдВ рд╢рдмреНрджреЛрдВ рдХреЗ рд╕рд╛рде рдЦрд╛рд▓реА рдЯреИрдЧ рдФрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдорд┐рд▓рддрд╛ рд╣реИред рд╣рдо рдЯреИрдЧ рдФрд░ рдЙрд╕рдХреЗ рд╕рдорд╛рдкрди рдЯреИрдЧ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ - рдпрд╣рд╛рдВ рд╕реНрд▓реИрд╢ рдХреЗ рдмрдЬрд╛рдп рдкреНрд░рддрд┐рд╢рдд рдкреНрд░рддреАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЯреИрдЧ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕реНрд▓реИрд╢ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдкреНрдпрд╛рд╕ рддреБрдореНрд╣реЗрдВ рдереЛрдбрд╝рд╛ рднреА рдирд╣реАрдВ рд╕рдордЭрддрд╛. рдФрд░ рд░реБрдЪрд┐ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рд╣рдо рдлрд╝рд╛рдЗрд▓ рд╕реЗ рд╕рднреА рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣рдЯрд╛рддреЗ рд╣реИрдВ, рдЦрд╛рд▓реА рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рд╡реЛрдЗрд▓рд╛ - рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рддреИрдпрд╛рд░ рд╕реВрдЪреАред

рдЕрдВрддрд┐рдо рдЕрдХреНрд╖рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреБрдХрдмрдВрджреА рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╢рдмреНрджреЛрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдореВрд▓ рд╢рдмреНрдж рд╕реЗ рдЕрдВрддрд┐рдо рджреЛ рдЕрдХреНрд╖рд░ рдЪреБрдиреЗрдВ рдФрд░ рд╕реВрдЪреА рд╕рд╛рдлрд╝ рдХрд░реЗрдВ:

squad=${word:((${#word}-2)):2}
cat $word | sed -e "/.$squad$/d" 1> $word

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рд╣рдо рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ... рддреЛ, "рдкреНрд▓реЗ" рд╢рдмреНрдж рдХреА рд╕реВрдЪреА рдХрд╣рд╛рдБ рд╣реИ? рдФрд░ "рдореИрдВ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ" рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП? рдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА рд╣реИ! рдФрд░ рдпрд╣ рд╕рдм рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╢рдмреНрдж рдХреНрд░рд┐рдпрд╛ рд╣реИрдВ, рдФрд░ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рддреБрдХрдмрдВрджреА рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдкрд░ рдХреНрдпрд╛ рдХрд░рддреЗ рд╣реИрдВред рдХреНрд░рд┐рдпрд╛ рдЫрдВрдж рд╡рд░реНрдЧ рдЫрдВрдж рд╕реЗ рднреА рдмрджрддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реВрд╕реА рднрд╛рд╖рд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ, рдФрд░ рдЙрди рд╕рднреА рдХрд╛ рдЕрдВрдд рдПрдХ рдЬреИрд╕рд╛ рд╣реИ, рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЕрдВрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╡реЗ рдЕрдВрддрд┐рдо рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд╣реАрдВ рдереЗред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╣рдореЗрдВ рдХреЛрдИ рдЬрд▓реНрджреА рдирд╣реАрдВ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреЗ рд▓рд┐рдП рди рдХреЗрд╡рд▓ рдЫрдВрдж рд╣реЛрддреЗ рд╣реИрдВ, рдмрд▓реНрдХрд┐ рдЕрд╕рдВрдЧрддрд┐рдпрд╛рдБ рднреА рд╣реЛрддреА рд╣реИрдВ, рдЬреЛ рдХрднреА-рдХрднреА рддреБрдХрдмрдВрджреА рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд▓рдЧрддреА рд╣реИрдВ - рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ рд╡реЗ рдЕрд╕рдВрдЧрддрд┐рдпрд╛рдБ рд╣реИрдВ (рдлреНрд░реЗрдВрдЪ рдПрд╕реЛрдиреЗрдВрд╕, рд▓реИрдЯрд┐рди рдПрд╕реЛрдиреЛ рд╕реЗ - рдореИрдВ рдзреБрди рдореЗрдВ рдзреНрд╡рдирд┐ рдХрд░рддрд╛ рд╣реВрдВ)ред

рд╣рдореЗрдВ рд╕рдорд╕реНрд╡рд░рддрд╛рдПрдБ рдорд┐рд▓рддреА рд╣реИрдВ

рдпрд╣реАрдВ рд╕реЗ рдордЬрд╛ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ: рдПрдХ рдЕрд▓рдЧ рдпреВрдЖрд░рдПрд▓ рдкрд░ рдФрд░ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ, рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрдХрд░ рдФрд░ рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдХреЗ, рдПрд╕реЛрдиреЗрдВрд╕ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред рдореИрдВ рдХреИрд╕реЗ рдХрд╣ рд╕рдХрддрд╛ wget'рдХреНрдпрд╛ рдЖрдк рдПрдХ рдмрдЯрди рджрдмрд╛рддреЗ рд╣реИрдВ? рд▓реЗрдХрд┐рди рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ. рдЕрдлрд╕реЛрд╕ рдХреА рдмрд╛рдд рд╣реИред

рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд▓рд╛рдЗрди рдореЗрдВ рдпреВрдЖрд░рдПрд▓ рдХрд┐рд╕реА рддрд░рд╣ рдмрджрд▓ рд░рд╣рд╛ рдерд╛, рдореИрдВрдиреЗ рдПрд╕реЛрдиреЗрдВрд╕ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЬреЛ рдХреБрдЫ рдерд╛ рдЙрд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ рдФрд░ рдПрдХ рдирдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреИрдм рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд┐рдпрд╛ - рдордЬрдмреВрдд рдХрд╡рд┐рддрд╛рдПрдБ рдЦреБрд▓ рдЧрдИрдВред рдирд╣реАрдВ рдХрд┐ред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛, рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╛ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕реЗ рд╣рд╛рде рд╕реЗ рдЯрд╛рдЗрдк рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдЗрд╕рд▓рд┐рдП? рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ, рдЖрдЗрдП рдЗрд╕рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред

рдХрд╣рд╛рдВ рднреЗрдЬрдирд╛ рд╣реИ? рдХреНрдпрд╛ рднреЗрдЬрдирд╛ рд╣реИ? рд╕рд░реНрд╡рд░ рдЖрдИрдкреА рдХреЗ рд▓рд┐рдП HTTP рдЕрдиреБрд░реЛрдз, GET рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ... рдлрд┐рд░ HTTP/1.1 рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ... рд╣рдореЗрдВ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреНрдпрд╛ рднреЗрдЬрддрд╛ рд╣реИ рдФрд░ рдХрд╣рд╛рдБ рднреЗрдЬрддрд╛ рд╣реИред рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ Wireshark, рдпрд╛рддрд╛рдпрд╛рдд рдХреЛ рджреЗрдЦреЛ:

0040 37 5d a3 84 27 e7 fb 13 6d 93 ed cd 56 04 9d 82 7]┬г.'├з├╗.m.├н├НV...
0050 32 7c fb 67 46 71 dd 36 4d 42 3d f3 62 1b e0 ad 2|├╗gFq├Э6MB=├│b.├а.
0060 ef 87 be 05 6a f9 e1 01 41 fc 25 5b c0 77 d3 94 ├п.┬╛.j├╣├б.A├╝%[├Аw├У.

рдЙрдореНрдо рдХреНрдпрд╛? рдЕрд░реЗ рд╣рд╛рдБ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ HTTPS рд╣реИред рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЕрдкрдиреЗ рдКрдкрд░ MITM рд╣рдорд▓рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ? рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдкреАрдбрд╝рд┐рддрд╛ рд╕реНрд╡рдпрдВ рд╣рдорд╛рд░реА рдорджрдж рдХрд░реЗрдЧреАред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд░ рд╕рд░реНрдл рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЕрдВрддрддрдГ рд╕реНрд╡рдпрдВ рдЕрдиреБрд░реЛрдз рдФрд░ рдкрддрд╛ рдорд┐рд▓ рдЧрдпрд╛ред рдЬрд╛рдирд╛:

рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж

telnet IP PORT
Trying IP...
Connected to IP.
Escape character is '^]'.
GET /rifma/%D0%BC%D0%B0%D1%82%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
Accept-Language: en-US,en;q=0.5
X-Requested-With: XMLHttpRequest
Connection: close

HTTP/1.1 400 Bad Request
Server: nginx/1.8.0
Date: Sun, 03 Nov 2019 20:06:59 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 270
Connection: close

<html>
<head><title>400 The plain HTTP request was sent to HTTPS port</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<center>The plain HTTP request was sent to HTTPS port</center>
<hr><center>nginx/1.8.0</center>
</body>
</html>
Connection closed by foreign host.

рдЕрд░реЗред рд╣реЗрд╣реЗрд╣реЗ. рджрд░рдЕрд╕рд▓, HTTPS рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рднреЗрдЬрддреЗ рд╕рдордп рдореИрдВрдиреЗ рдпрд╣реА рдЕрдкреЗрдХреНрд╖рд╛ рдХреА рдереАред рдХреНрдпрд╛ рд╣рдореЗрдВ рдЕрдм рдПрдиреНрдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдпрд╣ рд╕рдм рдЙрдкрджреНрд░рд╡ RSA рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдлрд┐рд░ SHA256 рдХреЗ рд╕рд╛рдеред рдХреНрдпреЛрдВ, рд╡рд╣рд╛рдБ рд╣реИ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдРрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП. рдЦреИрд░, рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ, рд╣рдо рдкрд╣рд▓реЗ рд░реЗрдлрд░рд░ рдФрд░ рдХреБрдХреА рдлрд╝реАрд▓реНрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдВрдЧреЗ - рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдорд╛рдорд▓реЗ рдХреЛ рдЬреНрдпрд╛рджрд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ:

рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж

openssl s_client -connect IP:PORT
{╨Т╤Б╤П╨║╨╕╨╡ ╨║╨╗╤О╤З╨╕, ╤Б╨╡╤А╤В╨╕╤Д╨╕╨║╨░╤В╤Л}
GET /rifma/%D0%B7%D0%B4%D0%B5%D1%81%D1%8C?mode=block&type=asn HTTP/1.1
Host: HOST
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:70.0) Gecko/20100101 Firefox/70.0
Accept: text/javascript,text/html,application/xml,text/xml,*/*
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
X-Requested-With: XMLHttpRequest
Connection: keep-alive

HTTP/1.1 200 OK
Content-Type: text/html;charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Status: 200 OK
Date: Sun, 03 Nov 2019 20:34:33 GMT
Set-Cookie: COOKIE
X-Powered-By: Phusion Passenger 5.0.16
Server: nginx/1.8.0 + Phusion Passenger 5.0.16
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Cache-Control: no-cache
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: block-all-mixed-content
Content-Encoding: gzip

рдХрдВрдкреНрдпреВрдЯрд░ рдХреА рджреБрдирд┐рдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдиреЗ рд╡рд╛рд▓реЗ рдЫрд╛рддреНрд░ рдХрд╛ рдорд╕реНрддрд┐рд╖реНрдХ рдХреНрдпрд╛ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ?

рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдкрд░ рд╢рдкрде? рдЦреИрд░, рдХрдо рд╕реЗ рдХрдо рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ 200 рдУрдХреЗ рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдХреБрдХреАрдЬрд╝ рдФрд░ рд░реЗрдлрд░рд░ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рд╕рдВрдкреАрдбрд╝рди gzip рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рддреЗ рд╕рдордп, ASCII рд╡рд░реНрдгреЛрдВ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИред рдмрд┐рд▓реНрдХреБрд▓, рдЖрдк рд▓рд╛рдЗрди рд╣рдЯрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд╕реНрд╡реАрдХрд╛рд░-рдПрдиреНрдХреЛрдбрд┐рдВрдЧ. рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ - рд╣рдореЗрдВ рдПрдХ HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдорд┐рд▓рддрд╛ рд╣реИ, рдЕрдм рдЕрдиреБрдирд╛рджреЛрдВ рдХреЗ рд╕рд╛рдеред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рджреЛ рдкреНрд░рд╢реНрди рд╣реИрдВ: рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреИрд╕реЗ рдЪрд▓рд╛рдПрдВ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░реЗрдВ? рдФрд░ рдпрджрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА рд╣рдо рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ "рд╢реЗрд▓" рдореЗрдВ рд╣реА рд░рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдХреИрд╕реЗ рдкрдврд╝рд╛ рдЬрд╛рдП? рдпрджрд┐ рдЖрдк рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд▓реЗрдХрд░ рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рдХреЗ рд╕рд╛рде...

рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рд╡рд╣рд╛рдБ рд╣реИ HabrрдЬрд╣рд╛рдБ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рд╛ рдЙрдореНрдореАрдж, рдЬреЛ рдорд╛рдирд╡ рд╕рдВрдкрд░реНрдХ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЯреАрдо рдХрд╛ рд╣реЛрдирд╛ рдФрд░ рднреА рдЖрдХрд░реНрд╖рдХ рд╣реИ рд╕реНрд╡рдд: рдЕрдкреЗрдХреНрд╖рд╛, рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рдЙрдореНрдореАрдж рдЖрдкрдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯред рдЦреИрд░, рд╣рдо рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдм рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддреИрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред рдХреЗрд╡рд▓ рд╡рд╣ рдмрд╣реБрдд рд╡рд┐рд╢рд╛рд▓ рд╣реИ, рдФрд░ рд╕рдм рдЗрд╕рд▓рд┐рдП рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░, рдХреБрдВрдЬрд┐рдпрд╛рдБ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЙрдореНрдореАрдж рдЗрди рд╕рдмрдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред рдХреНрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ? рдирд╣реАрдВред рд╣рдо рд╕рдВрдкреВрд░реНрдг рдкрд╣рд▓рд╛ рдкреНрд░реЙрдореНрдкреНрдЯ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ рдЕрдВрддрд┐рдо рдкрдВрдХреНрддрд┐ рдмреНрд░реЗрдХ 'r' рдЫреЛрдбрд╝рддреЗ рд╣реИрдВред рд╣рдо рдЕрдкрдиреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рдлрд╝реАрд▓реНрдб рднреА рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ - рд╡реЗ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рддреЛ рдЪрд▓рд┐рдП рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рдЧрдИ, рд▓реЗрдХрд┐рди рдХрд╝реАрдорддреА HTML рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╣рд╛рдБ рд╣реИ? рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдЗрд╕реЗ рдЦрд╛рдпрд╛ред рдЙрд╕реЗ рдЙрдЧрд▓рд╡рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдбрд╛рд▓рдирд╛ рд╣реЛрдЧрд╛:

set results $expect_out(buffer)

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рд╕реЗ рдкрд╣рд▓реЗ - рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХрд╛ рдЖрдЙрдЯрдкреБрдЯ рд▓рд┐рдЦрд╛ рдЬрд╛рдПрдЧрд╛ рдЙрдореНрдореАрджреР рдЖрджреЗрд╢ рдФрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░:

рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реЗрдВ

#!/usr/bin/expect -f

set timeout -1
spawn openssl s_client -connect IP:PORT
match_max 100000
expect -exact "
---r
"
send -- "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1rHost: HOSTrAccept-Language: en-US,en;q=0.5rX-Requested-With: XMLHttpRequestrConnection: close"
expect -exact "GET /rifma/%d0%b7%d0%b4%d0%b5%d1%81%d1%8c?mode=block&type=asn HTTP/1.1r
Host: HOSTr
Accept-Language: en-US,en;q=0.5r
X-Requested-With: XMLHttpRequestr
Connection: close"
send -- "r"
set results $expect_out(buffer)
expect -exact "r
"
send -- "r"
expect eof

рд▓реЗрдХрд┐рди рд╡рд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ! рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдпреВрдЖрд░рдПрд▓ рд╕реНрдерд┐рд░ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдпреВрдЖрд░рдПрд▓ рд╣реА рд╣реИ рдЬреЛ рдЗрд╕ рдмрд╛рдд рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рд╢рдмреНрдж рдПрд╕реЛрдиреЗрдВрд╕ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛрдЧрд╛ред рдФрд░ рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдо рд▓рдЧрд╛рддрд╛рд░ ASCII рдореЗрдВ "%d0%b7%d0%b4%d0%b5%d1%81%d1%8c" рдпрд╛ UTF-8 рдореЗрдВ "рдпрд╣рд╛рдВ" рд╢рдмреНрдж рдЦреЛрдЬреЗрдВрдЧреЗред рдХреНрдпрд╛ рдХрд░реЗрдВ? рдмреЗрд╢рдХ, рдмрд╕ рд╣рд░ рдмрд╛рд░ рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░реЗрдВ, рджреЛрд╕реНрддреЛрдВ! рдЕрдм рдФрд░ рдирд╣реАрдВ рд╕реНрд╡рдд: рдЕрдкреЗрдХреНрд╖рд╛реР, рдФрд░ рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рдЧреВрдВрдЬ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдирдпреЗ рдореЗрдВ рд╢рдмреНрдж рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рддрд╛. рдФрд░ рдирдИ рд╕рдорд╕реНрдпрд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧреА: рд╣рдо рд╕рд┐рд░рд┐рд▓рд┐рдХ рд╕реЗ рдпреВрдЖрд░рдПрд▓ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдХрд┐рд╕реА рд╢рдмреНрдж рдХрд╛ рдмреБрджреНрдзрд┐рдорд╛рдиреА рд╕реЗ рдЕрдиреБрд╡рд╛рдж рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдЯрд░реНрдорд┐рдирд▓ рдХреЗ рд▓рд┐рдП рднреА рдХреБрдЫ рдЦрд╛рд╕ рдирд╣реАрдВ рд╣реИ. рдЦреИрд░, рдпрд╣ рдареАрдХ рд╣реИ, рд╣рдо рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣реИ рдирд╛? рдХрд░ рд╕рдХрдирд╛:

рджреЗрдЦреЛ рд╣рдо рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!

function furl {
furl=$(echo "$word" | sed 's:╨Р:%d0%90:g;s:╨С:%d0%91:g;s:╨Т:%d0%92:g;s:╨У:%d0%93:g;s:╨Ф:%d0%94:g;s:╨Х:%d0%95:g;s:╨Ц:%d0%96:g;s:╨Ч:%d0%97:g;s:╨Ш:%d0%98:g;s:╨Щ:%d0%99:g;s:╨Ъ:%d0%9a:g;s:╨Ы:%d0%9b:g;s:╨Ь:%d0%9c:g;s:╨Э:%d0%9d:g;s:╨Ю:%d0%9e:g;s:╨Я:%d0%9f:g;s:╨а:%d0%a0:g;s:╨б:%d0%a1:g;s:╨в:%d0%a2:g;s:╨г:%d0%a3:g;s:╨д:%d0%a4:g;s:╨е:%d0%a5:g;s:╨ж:%d0%a6:g;s:╨з:%d0%a7:g;s:╨и:%d0%a8:g;s:╨й:%d0%a9:g;s:╨к:%d0%aa:g;s:╨л:%d0%ab:g;s:╨м:%d0%ac:g;s:╨н:%d0%ad:g;s:╨о:%d0%ae:g;s:╨п:%d0%af:g;s:╨░:%d0%b0:g;s:╨▒:%d0%b1:g;s:╨▓:%d0%b2:g;s:╨│:%d0%b3:g;s:╨┤:%d0%b4:g;s:╨╡:%d0%b5:g;s:╨╢:%d0%b6:g;s:╨╖:%d0%b7:g;s:╨╕:%d0%b8:g;s:╨╣:%d0%b9:g;s:╨║:%d0%ba:g;s:╨╗:%d0%bb:g;s:╨╝:%d0%bc:g;s:╨╜:%d0%bd:g;s:╨╛:%d0%be:g;s:╨┐:%d0%bf:g;s:╤А:%d1%80:g;s:╤Б:%d1%81:g;s:╤В:%d1%82:g;s:╤Г:%d1%83:g;s:╤Д:%d1%84:g;s:╤Е:%d1%85:g;s:╤Ж:%d1%86:g;s:╤З:%d1%87:g;s:╤И:%d1%88:g;s:╤Й:%d1%89:g;s:╤К:%d1%8a:g;s:╤Л:%d1%8b:g;s:╤М:%d1%8c:g;s:╤Н:%d1%8d:g;s:╤О:%d1%8e:g;s:╤П:%d1%8f:g;s:╤С:%d1%91:g;s:╨Б:%d0%81:g')}

рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдПрдХ рд╢рдмреНрдж рдХреЛ ASCII рдЯреЗрдХреНрд╕реНрдЯ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рддреА рд╣реИ, рдПрдХ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддреИрдпрд╛рд░ рдХрд░рддреА рд╣реИ рдЬреЛ рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рд░реНрд╡рд░ рд╕реЗ рдПрд╕реЛрдиреЗрдВрд╕ рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдкреЗрдЬ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреА рд╣реИред рдФрд░ рдлрд┐рд░ рд╣рдо рдЕрдВрддрд┐рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЖрдЙрдЯрдкреБрдЯ рдХреЛ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдкрд░ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдФрд░, рдкреБрд░рд╛рдиреЗ рддрд░реАрдХреЗ рд╕реЗ, рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ "рдлрд╝рд┐рд▓реНрдЯрд░" рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд░реНрдЧ рдмрдирд╛рдПрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

рдЕрдиреЗрдХреЛрдВ рдХрд╛ рдЕрдВрддрд░реНрд╡рд┐рдЪреНрдЫреЗрдж. рдЬрдореАрдиреА рд╕реНрддрд░

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣реА рд╡рд╣ рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ рдХрдо рд╕реЗ рдХрдо рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдХрд╛рд░рдг рдмрдирддреА рд╣реИред рд╣рдо рджреЛ рд╢рдмреНрджреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдЕрдкрдирд╛рддреЗ рд╣реИрдВ, рдлрд┐рд░ рджреЛ рд╕реВрдЪрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рдХреА рддреБрд▓рдирд╛ рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрдж рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрджрд┐ рдХреЛрдИ рдореЗрд▓ рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЙрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рджреЛ рд╢рдмреНрджреЛрдВ рдХреЛ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИ рдФрд░ рдЙрди рд╢рдмреНрджреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде рддреБрдХрдмрдВрджреА рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рд╕реНрд╡рд░реЛрдВ рдХреЛ рднреА рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рд╕рдм рдЪрд╛рд░ рдЯреИрдм рдХреЗ рдмреАрдЪ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд┐рдП рдмрд┐рдирд╛ рдФрд░ рд╢рдмреНрджреЛрдВ рдХреЛ "рдЖрдВрдЦ рд╕реЗ" рдпрд╛рдж рдХрд┐рдП рдмрд┐рдирд╛ - рдпрд╣ рд╕рдм рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рд┐рд╕рд╛рдм рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдФрд░ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ред рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХред

рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдпрд╣ рджрд┐рдЦрд╛рдирд╛ рдерд╛ рдХрд┐ рдпрджрд┐ рдХрд┐рд╕реА рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЙрд╕реЗ рд╡реИрд╕реЗ рднреА рдХрд░реЗрдЧрд╛ред рдмрд╣реБрдд рдЕрдкреНрд░рднрд╛рд╡реА, рдХреБрдЯрд┐рд▓, рдбрд░рд╛рд╡рдирд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ