рд╕рдВрдЧрдгрдХ рдЬрдЧрддрд╛рдмрджреНрджрд▓ рд╢рд┐рдХрдгрд╛рд▒реНрдпрд╛ рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдЪрд╛ рдореЗрдВрджреВ рдХрд╛рдп рд╕рдХреНрд╖рдо рдЖрд╣реЗ?

╨Ф╨╛╨▒╤А╨╛╨│╨╛ ╨▓╤А╨╡╨╝╨╡╨╜╨╕ ╤Б╤Г╤В╨╛╨║.

рдмреЕрд╢рдордзреНрдпреЗ рджреБрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреЗ рдкреВрд░реНрдг рдХреЗрд▓реНрдпрд╛рд╡рд░, рдорд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рд╕рд░реНрд╡рдХрд╛рд╣реА рдкреВрд░реНрдгрдкрдгреЗ рднрд┐рдиреНрди рдЕрд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗ, рдкрд░рдВрддреБ рд╕рд░реНрд╡рдХрд╛рд╣реА рдХрд╛рд░реНрдп рдХреЗрд▓реЗ. рд╕рдорд╕реНрдпрд╛ рд╕реЛрдбрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдореА рдХреЛрдгрддреЗ рдЕрд╢реНрд▓реАрд▓ рдЖрдгрд┐ рдХреБрдмрдбреНрдпрд╛ рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗрдд рд╣реЗ рдорд▓рд╛ рджрд╛рдЦрд╡рд╛рдпрдЪреЗ рдЖрд╣реЗ, рдкрд░рдВрддреБ рдЕрджреНрдпрд╛рдк рдЬреНрдЮрд╛рдирд╛рдЪрд╛ рдЧрд╛рдбрд╛ рдирд╛рд╣реА. рджреБрд╕рд▒реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдд, рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧрдЪреЗ рд╡реНрдпрдВрдЧрдЪрд┐рддреНрд░.

рдЙрджреНрджрд┐рд╖реНрдЯ


рдпрд╛рд╕рд╛рдареА рдХрд╛рд╣реАрддрд░реА рдЖрд╡рд╢реНрдпрдХ рдЭрд╛рд▓реЗ:

  • рдЪреМрд░рд╕ рд╡рдЧрд│рддрд╛ рд╢рдмреНрджрд╛рд╕рд╛рдареА рдЕрдиреЗрдХ рдпрдордХ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреЗрд▓реЗ
  • рджреЛрди рд╢рдмреНрджрд╛рдВрдЪреНрдпрд╛ рдЕрдиреЗрдХ рдпрдордХ рдУрд▓рд╛рдВрдбрд▓реНрдпрд╛

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

рдирд┐рд░реНрдгрдп


рдорд▓рд╛ рдЕрд╕реЗ рд╡рд╛рдЯрд▓реЗ рдХреА рдмрд╛рд╢рдордзреНрдпреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рд╣рд┐рдгреЗ рд╣рд╛ рд╕рд░реНрд╡рд╛рдд рд╕реЛрдкрд╛ рдЙрдкрд╛рдп рдЖрд╣реЗ рдЬреЛ рдЖрдзреАрдкрд╛рд╕реВрди рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рд▓реЗрд▓рд╛ рдпрдордХ рдЬрдирд░реЗрдЯрд░ - HOST рд╡рд╛рдкрд░рддреЛ, рдЬреЛ рдореБрдЦреНрдпрддрдГ рд╕реНрдкреЗрд▓рд┐рдВрдЧрджреНрд╡рд╛рд░реЗ рдирд╡реНрд╣реЗ рддрд░ рд╡реНрдпрдВрдЬрдирд╛рдиреБрд╕рд╛рд░ рдирд┐рд╡рдбрддреЛ. рдХреЛрдгрддреНрдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреЗ HOST? рдХрд╛рд░рдг рдЬрд░ рддреБрдореНрд╣реА рд╕рд╛рдЗрдЯрдЪреЗ рдЦрд░реЗ рдирд╛рд╡ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рддрд░ рддреЗ рдореНрд╣рдгрддреАрд▓ рдХреА рддреА рдЬрд╛рд╣рд┐рд░рд╛рдд рдЖрд╣реЗ. рддреЗ рд╡рд╛рдкрд░рдд рдХрд╛ рдирд╛рд╣реА? рдкреНрд░рдердо, рд╡реНрдпрдВрдЬрдирд╛рдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдпрдордХ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪрд╛ рддреНрдпрд╛рдЪрд╛ рдлрд╛рдпрджрд╛ рдЕрд╕реВрдирд╣реА, рддреЛ рдЕрдЬреВрдирд╣реА рдЕрдиреЗрдХрджрд╛ рдЪреМрд░рд╕ рддрдпрд╛рд░ рдХрд░рддреЛ. рджреБрд╕рд░реЗ рдореНрд╣рдгрдЬреЗ, рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдЬреВрдирд╣реА рддреБрдордЪреНрдпрд╛ рдореЗрдВрджреВрдиреЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓, рдЯреЕрдмрдордзреНрдпреЗ рдмрджрд▓ рдХрд░рдгреНрдпрд╛рдд рд╡реЗрд│ рдШрд╛рд▓рд╡рд╛рд╡рд╛ рд▓рд╛рдЧреЗрд▓ рдЖрдгрд┐ рджреЛрди рд╢рдмреНрджрд╛рдВрд╕рд╛рдареА рдпрдордХ рд╢реЛрдзрдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рджреНрдпрд╛рдВрдордзреАрд▓ рд╡рд╛рд░рдВрд╡рд╛рд░ рд╢рдмреНрдж рд▓рдХреНрд╖рд╛рдд рдареЗрд╡рдгреНрдпрд╛рдЪреА рдЙрд░реНрдЬрд╛ рджреНрдпрд╛рд╡реА рд▓рд╛рдЧреЗрд▓.

рдордЬрдмреВрдд рдпрдордХ рдорд┐рд│рдд рдЖрд╣реЗ

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

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

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

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

рдкреНрд░рдердо, рдЖрдореНрд╣реА рдЯреЕрдЧ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╢рдмреНрдж рдлрд╛рдЗрд▓рдордзреВрди рдУрд│реА рдирд┐рд╡рдбрддреЛ - рдЖрдореНрд╣рд╛рд▓рд╛ рд░рд┐рдХреНрдд рдЯреЕрдЧ рдЖрдгрд┐ рд╢рдмреНрджрд╛рдВрд╕рд╣ рдУрд│реАрдВрдЪрд╛ рд╕рдореВрд╣ рдорд┐рд│рддреЛ. рдЖрдореНрд╣реА рдЯреЕрдЧ рд╕реНрд╡рддрдГ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ рдЖрдгрд┐ рддреЛ рдмрдВрдж рдХрд░рддреЛ - рдпреЗрдереЗ рд╕реНрд▓реЕрд╢рдРрд╡рдЬреА рдЯрдХреНрдХреЗ рдЪрд┐рдиреНрд╣реЗ рд╡рд╛рдкрд░рд▓реА рдЬрд╛рддрд╛рдд рдХрд╛рд░рдг рдЯреЕрдЧрдордзреНрдпреЗ рдЖрдзреАрдЪ рд╕реНрд▓реЕрд╢ рдЖрд╣реЗ, рдореНрд╣рдгреВрдирдЪ sed рддреБрд▓рд╛ рдереЛрдбреЗ рд╕рдордЬрдд рдирд╛рд╣реА. рдЖрдгрд┐ рд╡реНрдпрд╛рдЬрд╛рд╕рд╣ рд╕рд░реНрд╡ рдХрд╛рд╣реА рдареАрдХ рдЖрд╣реЗ. рдЖрдореНрд╣реА рдлрд╛рдИрд▓рдордзреВрди рд╕рд░реНрд╡ рдЬрд╛рдЧрд╛ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ, рд░рд┐рдХрд╛рдореНрдпрд╛ рдУрд│реА рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ. рд╡реНрд╣реЛрдЗрд▓рд╛ - рд╢рдмреНрджрд╛рдВрдЪреА рддрдпрд╛рд░ рдпрд╛рджреА.

рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдЕрдХреНрд╖рд░рд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ рдХрд░реВрди рдпрдордХ рдЕрд╕рд▓реЗрд▓реЗ рд╢рдмреНрдж рдХрд╛рдврдгреНрдпрд╛рд╕рд╛рдареА, рдореВрд│ рд╢рдмреНрджрд╛рддреАрд▓ рд╢реЗрд╡рдЯрдЪреА рджреЛрди рдЕрдХреНрд╖рд░реЗ рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ рдпрд╛рджреА рд╕рд╛рдл рдХрд░рд╛:

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

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

рддрдерд╛рдкрд┐, рдЖрдореНрд╣рд╛рд▓рд╛ рдХреЛрдгрддреАрд╣реА рдШрд╛рдИ рдирд╛рд╣реА. рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрд╛рд╕рд╛рдареА рдХреЗрд╡рд│ рдпрдордХрдЪ рдирд╛рд╣реАрдд, рддрд░ рд╕рдВрдЧрддреА рджреЗрдЦреАрд▓ рдЖрд╣реЗрдд, рдЬреЗ рдХрдзреАрдХрдзреА рдпрдордХрд╛рдкреЗрдХреНрд╖рд╛ рдЦреВрдк рдЪрд╛рдВрдЧрд▓реЗ рд╡рд╛рдЯрддрд╛рдд - рдореНрд╣рдгреВрдирдЪ рддреЗ рдЕреЕрд╕реЛрдирдиреНрд╕ рдЖрд╣реЗрдд (рдлреНрд░реЗрдВрдЪ рдЕреЕрд╕реЛрдирдиреНрд╕, рд▓реЕрдЯрд┐рди рдПрд╕реЛрдиреЛ - рдореА рдЯреНрдпреВрдирдордзреНрдпреЗ рдЖрд╡рд╛рдЬ рдХрд░рддреЛ).

рдЖрдореНтАНрд╣рд╛рд▓рд╛ рд╕реБрд╕рдВрд╡рд╛рдж рдорд┐рд│рддреЛ

рдпреЗрдереВрдирдЪ рдордЬрд╛ рд╕реБрд░реВ рд╣реЛрддреЗ: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░реВрди, HTTP рд╡рд┐рдирдВрддреА рдкрд╛рдард╡реВрди рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░реВрди, рдПрдХрд╛ рд╡реЗрдЧрд│реНрдпрд╛ URL рд╡рд░ рдЖрдгрд┐ рддреНрдпрд╛рдЪ рдкрд╛рдирд╛рд╡рд░ рдЕреЕрд╕реЛрдирдиреНрд╕ рджрд┐рд╕рддрд╛рдд. рдореА рдХрд╕реЗ рдореНрд╣рдгреВ рд╢рдХрддреЛ wget'рддреБрдореНрд╣реА рдмрдЯрдг рджрд╛рдмрддрд╛ рдХрд╛? рдкрдг рдорд╛рд░реНрдЧ рдирд╛рд╣реА. рджреБрдГрдЦрд╛рдиреЗ.

рдУрд│реАрддреАрд▓ URL рдХрд╕реЗрддрд░реА рдмрджрд▓рдд рдЕрд╕рд▓реНрдпрд╛рдЪреЗ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реНрдпрд╛рдиреЗ, рдореА рдЕреЕрд╕реЛрдирдиреНрд╕реЗрд╕рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░ рддреЗрдереЗ рдХрд╛рдп рд╣реЛрддреЗ рддреЗ рдХреЙрдкреА рдХреЗрд▓реЗ рдЖрдгрд┐ рдирд╡реАрди рдмреНрд░рд╛рдЙрдЭрд░ рдЯреЕрдмрдордзреНрдпреЗ рдкреЗрд╕реНрдЯ рдХреЗрд▓реЗ - рдордЬрдмреВрдд rhymes рдЙрдШрдбрд▓реЗ. рддреЗ рдирд╛рд╣реА.

рдореВрд▓рдд:, рдорд▓рд╛ рд╡рд╛рдЯрд▓реЗ, рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рдгрд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЭрд╛рд▓реА рдХреА рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рддреА рд╡реНрдпрдХреНрддреА рд╣рд╛рддрд╛рдиреЗ рдЯрд╛рдЗрдк рдХрд░рддреЗ рдХреА рдирд╛рд╣реА рдпрд╛рдиреЗ рд╕рд░реНрд╡реНрд╣рд░рд▓рд╛ рдХрд╛рд╣реА рдлрд░рдХ рдкрдбрдд рдирд╛рд╣реА. рддрд░? рдХреЛрдгрд╛рд╕ рдард╛рдКрдХ, рдЪрд▓рд╛ рддреЗ рддрдкрд╛рд╕реВрдпрд╛.

рдХреБрдареЗ рдкрд╛рдард╡рд╛рдпрдЪреЗ? рдХрд╛рдп рдкрд╛рдард╡рд╛рдпрдЪреЗ? рд╕рд░реНрд╡реНрд╣рд░ IP рд▓рд╛ 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 рдЖрд╣реЗ. рдХрд╛рдп рдХрд░рд╛рдпрдЪрдВ? рд╕реНрд╡рддрдГрд╡рд░ рдПрдордЖрдпрдЯреАрдПрдо рд╣рд▓реНрд▓рд╛ рд╕реБрд░реВ рдХрд░рд╛рдпрдЪрд╛? рдЖрджрд░реНрд╢рдкрдгреЗ, рдкреАрдбрд┐рддрд╛ рд╕реНрд╡рддрдГрдЪ рдЖрдореНрд╣рд╛рд▓рд╛ рдорджрдд рдХрд░реЗрд▓.

рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рдмреНрд░рд╛рдЙрдЭрд░ рд╕рд░реНрдл рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓реНрдпрд╛рдирдВрддрд░, рдорд▓рд╛ рд╢реЗрд╡рдЯреА рд╡рд┐рдирдВрддреА рд╕реНрд╡рддрдГрдЪ рдЖрдгрд┐ рдкрддреНрддрд╛ рд╕рд╛рдкрдбрд▓рд╛. рдЬрд╛:

рдЯрд░реНрдорд┐рдирд▓рд╢реА рд╕рдВрд╡рд╛рдж

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 рджрд╕реНрддрдРрд╡рдЬ рдорд┐рд│рддреЛ, рдЖрддрд╛ рдЕреЕрд╕реЛрдирдиреНрд╕рд╕рд╣. рдкрд░рдВрддреБ рдпреЗрдереЗ рджреЛрди рдкреНрд░рд╢реНрди рдЖрд╣реЗрдд: рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдХрд╕реЗ рдЪрд╛рд▓рд╡рд╛рдпрдЪреЗ рдЖрдгрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд╛рдкрд░реВрди рдбреЗрдЯрд╛ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд╕рд╛ рдХрд░рд╛рдпрдЪрд╛? рдЖрдгрд┐ рдкреНрд░рддрд┐рд╕рд╛рдж рдорд┐рд│рд╛рд▓реНрдпрд╛рдирдВрддрд░ рдЖрдореНрд╣реА рдЬрд╕реЗ OpenSSL тАЬрд╢реЗрд▓тАЭ рдордзреНрдпреЗ рд░рд╛рд╣рд┐рд▓реЛ рддрд░ рдЖрдЙрдЯрдкреБрдЯ рдХрд╕реЗ рд╡рд╛рдЪрд╛рдпрдЪреЗ? рдЬрд░ рддреБрдореНрд╣реА рджреБрд╕рд▒реНрдпрд╛рд╕рд╣ рдХрд╛рд╣реАрддрд░реА рдШреЗрдКрди рдпреЗрдК рд╢рдХрддрд╛, рдкрд░рдВрддреБ рдкрд╣рд┐рд▓реНрдпрд╛рд╕рд╣ ...

рддреЗрдереЗ рдЖрд╣реЗ рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ рд╣рдмреНрд░рдЬрд┐рдереЗ рдореА рдЙрдкрдпреБрдХреНрддрддреЗрдмрджреНрджрд▓ рд╡рд╛рдЪрд▓реЗ рдЕрдкреЗрдХреНрд╖рд╛, рдЬреЗ рдорд╛рдирд╡реА рдкрд░рд╕реНрдкрд░рд╕рдВрд╡рд╛рджрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рддреЗ. рдПрдХ рд╕рдВрдШ рдЕрд╕рдгреЗ рдЕрдзрд┐рдХ рдЖрдХрд░реНрд╖рдХ рдЖрд╣реЗ рд╕реНрд╡рдпрдВрдЕрдкреЗрдХреНрд╖рд╛, рдирд┐рд░реНрдорд┐рддреА рдЕрдкреЗрдХреНрд╖рд╛ рддреБрдордЪреНрдпрд╛ рдХреГрддреАрдВрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ. рдареАрдХ рдЖрд╣реЗ, рдЖрдореНрд╣реА рддреЗ рд▓рд╛рдБрдЪ рдХрд░рддреЛ, рд╣реЗ рд╕рд░реНрд╡ рдХрд░рддреЛ рдЖрдгрд┐ рдпреЗрдереЗ рддрдпрд╛рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗ. рдлрдХреНрдд рддреЛ рдЦреВрдк рдореЛрдард╛ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рд░реНрд╡ рдХрд╛рд░рдг рдУрдкрдирдПрд╕рдПрд╕рдПрд▓ рдкреНрд░рдорд╛рдгрдкрддреНрд░реЗ, рдХреА рдЖрдгрд┐ рджрд╛рдЦрд╡рддреЗ рдЕрдкреЗрдХреНрд╖рд╛ рдпрд╛ рд╕рд░реНрд╡рд╛рдВрдЪреНрдпрд╛ рдЖрдЙрдЯрдкреБрдЯрдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рдд рдЖрд╣реЗ. рдЖрдореНрд╣рд╛рд▓рд╛ рдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ рдХрд╛? рдирд╛рд╣реА. рдлрдХреНрдд рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рдУрд│реАрдЪрд╛ рдмреНрд░реЗрдХ тАШrтАЩ рд╕реЛрдбреВрди рдЖрдореНрд╣реА рд╕рдВрдкреВрд░реНрдг рдкрд╣рд┐рд▓рд╛ рдкреНрд░реЙрдореНрдкреНрдЯ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ. рдЖрдореНрд╣реА рдЖрдордЪреНрдпрд╛ рд╡рд┐рдирдВрддреАрд╡рд░реВрди рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рдПрдЬрдВрдЯ рдЖрдгрд┐ рдлреАрд▓реНрдб рджреЗрдЦреАрд▓ рдХрд╛рдвреВрди рдЯрд╛рдХрддреЛ - рддреЗ рдХрд╢рд╛рд╡рд░рд╣реА рдкрд░рд┐рдгрд╛рдо рдХрд░рдд рдирд╛рд╣реАрдд. рддрд░, рдЪрд▓рд╛ рд▓реЙрдиреНрдЪ рдХрд░реВрдпрд╛. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдЭрд╛рд▓реА, рдкрд░рдВрддреБ рдЦрдЬрд┐рдирд╛ HTML рджрд╕реНрддрдРрд╡рдЬ рдХреБрдареЗ рдЖрд╣реЗ? рдЕрдкреЗрдХреНрд╖рд┐рдд рддреЗ рдЦрд╛рд▓реНрд▓реЗ. рддреНрдпрд╛рд▓рд╛ рдереБрдВрдХрдгреНрдпрд╛рд╕рд╛рдареА, рдЖрдкрд▓реНрдпрд╛рд▓рд╛ рд╣реЗ рдареЗрд╡рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

set results $expect_out(buffer)

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреНрдпрд╛ рд╕рдорд╛рдкреНрддреАрдкреВрд░реНрд╡реА - рдЕрд╢рд╛ рдкреНрд░рдХрд╛рд░реЗ рдПрдХреНрдЭрд┐рдХреНрдпреБрдЯреЗрдмрд▓рдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рд▓рд┐рд╣рд┐рд▓реЗ рдЬрд╛рдИрд▓ рдЕрдкреЗрдХреНрд╖рд╛'om рдХрдорд╛рдВрдб рдЖрдгрд┐ рд╕реНрдХреНрд░реАрдирд╡рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд. рд╕рд╛рд░рд╛рдВрд╢, рдЕрд╕реЗ рдХрд╛рд╣реАрддрд░реА:

рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдЖрд╣реЗ

#!/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

рдкрдг рддреЗ рд╕рд░реНрд╡ рдирд╛рд╣реА! рддреБрдореНрд╣реА рдмрдШреВ рд╢рдХрддрд╛, рд╕рд░реНрд╡ рдЙрджрд╛рд╣рд░рдгрд╛рдВрдордзреНрдпреЗ рд╡рд┐рдирдВрддреА URL рд╕реНрдерд┐рд░ рд╣реЛрддреА, рдкрд░рдВрддреБ рддреА URL рдЖрд╣реЗ рдЬреА рдХреЛрдгрддреНрдпрд╛ рд╢рдмреНрджрд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реЗрд▓ рдпрд╛рд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ. рдЖрдгрд┐ рдореНрд╣рдгреВрди рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА рдЖрдореНрд╣реА ASCII рдордзреНрдпреЗ тАЬ%d0%b7%d0%b4%d0%b5%d1%81%d1%8cтАЭ рдХрд┐рдВрд╡рд╛ UTF-8 рдордзреНрдпреЗ тАЬрдпреЗрдереЗтАЭ рд╣рд╛ рд╢рдмреНрдж рд╕рддрдд рд╢реЛрдзреВ. рдХрд╛рдп рдХрд░рд╛рдпрдЪрдВ? рдЕрд░реНрдерд╛рдд, рдкреНрд░рддреНрдпреЗрдХ рд╡реЗрд│реА рдлрдХреНрдд рдПрдХ рдирд╡реАрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░рд╛ рдорд┐рддреНрд░рд╛рдВрдиреЛ! рдЖрддрд╛ рдирд╛рд╣реА рд╕реНрд╡рдпрдВрдЕрдкреЗрдХреНрд╖рд╛'рдУрдо, рдЖрдгрд┐ рдорджрддреАрдиреЗ рдкреНрд░рддрд┐рдзреНрд╡рдиреА, рдХрд╛рд░рдг рдЖрдордЪреНрдпрд╛ рдирд╡реАрдирдордзреНрдпреЗ, рд╢рдмреНрджрд╛рд╢рд┐рд╡рд╛рдп рдХрд╛рд╣реАрд╣реА рдмрджрд▓рдд рдирд╛рд╣реА. рдЖрдгрд┐ рдирд╡реАрди рд╕рдорд╕реНрдпрд╛ рджреАрд░реНрдШрдХрд╛рд│ рдЬрдЧреВ рджреНрдпрд╛: рдЖрдореНрд╣реА рд╕рд┐рд░рд┐рд▓рд┐рдХрдордзреАрд▓ рд╢рдмреНрджрд╛рдЪрд╛ URL рдлреЙрд░рдореЕрдЯрдордзреНрдпреЗ рдмреБрджреНрдзрд┐рдорд╛рдирдкрдгреЗ рдХрд╕рд╛ рдЕрдиреБрд╡рд╛рдж рдХрд░реВ рд╢рдХрддреЛ? рдЯрд░реНрдорд┐рдирд▓рд╕рд╛рдареАрд╣реА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд╣реА рдирд╛рд╣реА. рдмрд░рдВ, рд╣реЗ рдареАрдХ рдЖрд╣реЗ, рдЖрдкрдг рддреЗ рдХрд░реВ рд╢рдХрддреЛ, рдмрд░реЛрдмрд░? рдХрд░реВ рд╢рдХрддрд╛:

рдореА рдХрд╛рдп рдХрд░реВ рд╢рдХрддреЛ рддреЗ рдкрд╣рд╛!

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 рдордЬрдХреВрд░рд╛рдд рд░реВрдкрд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ, рджреБрд╕рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рддрдпрд╛рд░ рдХрд░рддреЗ рдЬреА OpenSSL рджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡реНрд╣рд░рдХрдбреВрди рдЕреЕрд╕реЛрдирдиреНрд╕рд╕рд╣ рд╕рд╛рдЗрдЯ рдкреГрд╖реНрдард╛рдЪреА рд╡рд┐рдирдВрддреА рдХрд░рддреЗ. рдЖрдгрд┐ рдордЧ рдЖрдореНрд╣реА рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯрдЪреЗ рдЖрдЙрдЯрдкреБрдЯ рдПрдХрд╛ рдлрд╛рдИрд▓рд╡рд░ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рдЬреБрдиреНрдпрд╛ рдкрджреНрдзрддреАрдиреБрд╕рд╛рд░, рддреЗ рдкрд╛рд░ рдХрд░рддреЛ. "рдлрд┐рд▓реНрдЯрд░" рдЕрддрд┐рд░рд┐рдХреНрдд рдЪреМрд░рд╕ рдЖрдгрд┐ рдлрд╛рдЗрд▓рдордзреНрдпреЗ рд▓рд┐рд╣рд╛.

рдЕрдиреЗрдХрд╛рдВрдЪреЗ рдЫреЗрджрди. рддрд│ рдУрд│

рд╡рд╛рд╕реНрддрд╡рд┐рдХ, рд╣реЗрдЪ рдЕрдЧрджреА рдХрдореАрдд рдХрдореА рд╕рдорд╕реНрдпрд╛рдВрдирд╛ рдХрд╛рд░рдгреАрднреВрдд рдард░рддреЗ. рдЖрдореНрд╣реА рджреЛрди рд╢рдмреНрджрд╛рдВрд╕рд╛рдареА рд╡рд░реАрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкрд╛рд░ рдкрд╛рдбрддреЛ, рдирдВрддрд░ рджреЛрди рд╕реВрдЪреАрдВрдордзреВрди рдЖрдореНрд╣реА рдкреНрд░рддреНрдпреЗрдХ рд╢рдмреНрджрд╛рдЪреА рдкреНрд░рддреНрдпреЗрдХрд╛рд╢реА рддреБрд▓рдирд╛ рдХрд░рддреЛ рдЖрдгрд┐ рдЬрд░ рдПрдХ рдЬреБрд│рдгреА рдЖрдврд│рд▓реА рддрд░ рдЖрдореНрд╣реА рддреЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреЛ. рдЖрддрд╛ рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрд╣реЗ рдЬреА рджреЛрди рд╢рдмреНрдж рдЗрдирдкреБрдЯ рдореНрд╣рдгреВрди рдШреЗрддреЗ рдЖрдгрд┐ рджреЛрдиреНрд╣реАрд╕рд╣ рдпрдордХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╢рдмреНрджрд╛рдВрдЪреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рдЖрдгрд┐ рдЕрдЧрджреА рдЦрд╛рддреЗ рд╕рдВрдпреЛрдЬрди рджреЗрдЦреАрд▓ рд▓рдХреНрд╖рд╛рдд рдШреЗрддреЗ, рдЖрдгрд┐ рд╣реЗ рд╕рд░реНрд╡ рдЪрд╛рд░ рдЯреЕрдмрдордзреНрдпреЗ рд╡реНрдпрдХреНрддрд┐рдЪрд▓рд┐рддрдкрдгреЗ рд╕реНрд╡рд┐рдЪ рди рдХрд░рддрд╛ рдЖрдгрд┐ "рдбреЛрд│реНрдпрд╛рджреНрд╡рд╛рд░реЗ" рд╢рдмреНрдж рд▓рдХреНрд╖рд╛рдд рди рдареЗрд╡рддрд╛ - рд╕рд░реНрд╡ рдЧреЛрд│рд╛ рдХреЗрд▓реЗрд▓реЗ, рдЦрд╛рддреЗ рд╕рд╛рдареА рдЖрдгрд┐ рдЖрдкреЛрдЖрдк рдЯрд╛рдХреВрди рджрд┐рд▓реЗ. рдЕрдкреНрд░рддрд┐рдо.

рдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪрд╛ рдЙрджреНрджреЗрд╢ рд╣рд╛ рд╣реЛрддрд╛ рдХреА рдПрдЦрд╛рджреНрдпрд╛ рд╡реНрдпрдХреНрддреАрд▓рд╛ рдПрдЦрд╛рджреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдЪреА рдЧрд░рдЬ рднрд╛рд╕рд▓реА рддрд░ рддреА рддреА рдХрд╢реАрд╣реА рдХрд░реВрди рджреЗрдИрд▓. рдЕрддрд┐рд╢рдп рдХреБрдЪрдХрд╛рдореА, рдХреБрдЯрд┐рд▓, рднрд┐рддреАрджрд╛рдпрдХ, рдкрдг рдЪрд╛рд▓реЗрд▓.

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

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛