рдкрд░реНрд▓ рдореЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ, рдпрд╛ рдореИрдВрдиреЗ рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ 13 рдХреЗ рдлрд┐рд▓реНрдорд╛рдВрдХрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдХреИрд╕реЗ рджреЗрдЦрд╛

рдЫрд╡рд┐
рдпрд╣ рд╕рдм рдЗрд╕ рддрдереНрдп рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдПрдХ рд╡реАрдбрд┐рдпреЛ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдЬрд┐рд╕рдиреЗ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдЯреАрд╡реА рд╢реЛ, рд╡реЗрдпрд░рд╣рд╛рдЙрд╕ 13 рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдлрд┐рд▓реНрдорд╛рдиреЗ рдХреА рдмрд╛рдд рдХреА рдереА:
www.aoltv.com/2009/07/10/behind-the-scenes-of-warehouse-13

рдХреВрд▓ рд╕реНрдЯреАрдордкрдВрдХ рд╕рд╛рдорд╛рди, рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рд╕рд╣рд╛рдпрддрд╛ рдФрд░ рджреЛрд╕реНрддреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА, рдФрд░ рдПрдХ рд╣рд▓реНрдХрд╛ рдЬрд╛рджреБрдИ рд╡рд╛рддрд╛рд╡рд░рдг рдЬреЛ рдЖрдкрдХреЛ рдЧреНрд░реЗ рд░реЛрдЬрдорд░реНрд░рд╛ рдХреА рдЬрд┐рдВрджрдЧреА рд╕реЗ рджреВрд░ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИ - рдпрд╣реА рдореИрдВ рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╕рдВрдж рдХрд░рддрд╛ рд╣реВрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореБрдЭреЗ рдлрд┐рд▓реНрдо рд╕реЗ рдХрдо рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдлрд┐рд▓реНрдо рдХреИрд╕реЗ рдмрдиреА рд╣реИред

рд▓реЗрдХрд┐рди, рдЬреИрд╕рд╛ рдХрд┐ AOL TV рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдкреНрд░рдерд╛рдЧрдд рд╣реИ, рд╡реАрдбрд┐рдпреЛ рдХреЗрд╡рд▓ рдЕрдореЗрд░рд┐рдХреА рдирд┐рд╡рд╛рд╕рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рдерд╛ред рдРрд╕реЗ рдкреНрд░рддрд┐рдмрдВрдз рдХреНрдпреЛрдВ рд▓рдЧрд╛рдП - рдореИрдВ рд╕рдордЭ рдирд╣реАрдВ рдкрд╛ рд░рд╣рд╛ рд╣реВрдВ рд╡реЗ рдХрд╣рд╛рдБ рдФрд░ рдХрд┐рд╕ рдордж рдореЗрдВ рдорджрдорд╕реНрдд рд╣реИрдВ, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдРрд╕реА рд╣рд░рдХрдд рдореБрдЭреЗ рд░реЛрдХ рдирд╣реАрдВ рдкрд╛рдИред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдЬрд┐рд╕рдХреЗ рдкреАрдЫреЗ рдореИрдВ aoltv рд╕рд╛рдЗрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдПрдорд░рд┐рдХреЛрд╕ рдЬреИрд╕рд╛ рджрд┐рдЦреВрдВрдЧрд╛ред рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА рд╕реВрдЪреА рдвреВрдВрдврдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рдлрд┐рд░ рд╢реНрд░рдорд┐рдХреЛрдВ рдФрд░ рдлрд┐рд░ рдЕрдореЗрд░рд┐рдХреА рд▓реЛрдЧреЛрдВ рдХреЛ рдЦреЛрдЬрдирд╛ рдерд╛ред

рд╡реИрд╕реЗ, рдореБрдЭреЗ рдпрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓реА:
www.proxz.com/proxy_list_anonymous_us_0.html

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

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

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдСрдкрд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
- рдкреНрд░реЙрдХреНрд╕реА рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- рдХрдИ рдереНрд░реЗрдб рд╢реБрд░реВ рдХрд░реЗрдВ рдЬреЛ рд╕реВрдЪреА рд╕реЗ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рд╕реЗ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░реЗрдВрдЧреЗ
- рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдЧреБрдордирд╛рдореА рдХреЗ рд▓рд┐рдП рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ

рдкрд░реНрд▓ рдореЗрдВ рдзрд╛рд░рд╛рдПрдВ рдПрдХ рдкреНрд░рд╛рдЧреНрдо рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИрдВ

рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;

рд╡рд┐рд╡рд░рдг: perldoc.perl.org/threads.html

рдпрджрд┐ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрдкрдХреЛ рдЗрд╕ рддрд░рд╣ рдХрд╛ рдЗрдВрдХрд╛рд░ рдорд┐рд▓рддрд╛ рд╣реИ:

рдЗрд╕ рдкрд░реНрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдареАрдХ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред ('рдпреВрдердереНрд░реЗрдбреНрд╕' рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рддреЛ рдпрд╣ рдкрд░реНрд▓ рдХреЗ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдЙрд╕рдХреЗ рдмрд╛рдж рд╣рдо рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдзрд╛рдЧрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

$ рдзрд╛рдЧрд╛ = рдзрд╛рдЧреЗ-> рдмрдирд╛рдПрдБ (\ & job_todo, $ param);

job_todo рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдирд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдХрд╛рд░реНрдп рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдзрд╛рд░рд╛ рдХреА рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ред рд╕рд╣реА рд╣реИ, рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдПрдХ tid () рд╡рд┐рдзрд┐ рд╣реИ, рдЬреЛ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд▓реМрдЯрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВрдЧреЗред
рдЖрдЙрдЯрдкреБрдЯ рдПрдХ $ рдереНрд░реЗрдб рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

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

рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдорд╛рдВрдб рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛

$ рдзрд╛рдЧрд╛-> рдЬреБрдбрд╝рдирд╛ ();

рдзрд╛рд░рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдПрдХ-рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреИрд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕реВрдЪреА рд╕реЗ рдХреМрди рд╕реА рдкреНрд░реЙрдХреНрд╕реА рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛ рдЪреБрдХреА рд╣реИрдВ рдФрд░ рдХреМрди рд╕реА рдирд╣реАрдВ рд╣реИрдВ? рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЛ рдмрдирд╛рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдШреЛрд╖рд┐рдд рдЪрд░ рдХреА рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИ, рдФрд░ рд╡реЗ рд░рд╛рдЬрдХреБрдорд╛рд░ рд╕реЗ рд╕рд┐рдВрдбреНрд░реЗрд▓рд╛ рдХреА рддрд░рд╣ рдПрдХ-рджреВрд╕рд░реЗ рд╕реЗ рдХрдЯреЗ рд░рд╣рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдЬреНрдЮрд╛ рд╣реИ

рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ: рд╕рд╛рдЭрд╛;

рдЬреЛ рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рддреНред рд╕рд╛рдЭрд╛, рдЪрд░ред рдпрджрд┐ рдЖрдк рдЗрд╕ рддрд░рд╣ рдПрдХ рдЪрд░ рдШреЛрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:

рдореЗрд░реА $ useme: рд╕рд╛рдЭрд╛ = 0;

рддрдм рд╕рднреА рдереНрд░реЗрдбреНрд╕ рдХреЗ рд▓рд┐рдП $ useme рд╡реИрд░рд┐рдПрдмрд▓ рдЖрдо рд╣реЛ рдЬрд╛рдПрдЧрд╛ - рдЬрдм рдПрдХ рдереНрд░реЗрдб рдЕрдкрдирд╛ рдорд╛рди рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рд╡рд╣ рдорд╛рди рджреЗрдЦрддреЗ рд╣реИрдВ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдмрджрд▓ рдЪреБрдХрд╛ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдПрдХ рд╕рдорд░реВрдкрддрд╛ рдХрд╛ рдПрдХ рд╕рд░рдгреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдпрд╣ рдЙрд╕ рд╕рд░рдгреА рдХреА рд╕реНрдерд┐рддрд┐ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдЭрд╛ рд╕реВрдЪрдХ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдЕрдЧрд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░реЙрдХреНрд╕реА рдирд┐рд╣рд┐рдд рд╣реИред

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

рдореИрдВрдиреЗ рдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдЯ www.myip.ru рдХреЛ рдЪреБрдирд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдк рдПрдХ рдирд┐рд░рдВрддрд░ рдЖрдзрд╛рд░ рдкрд░ рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рд╣реИрдВ, рддреЛ рдЕрдкрдиреА рдЦреБрдж рдХреА рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдХреБрдЫ рд╕рд░реНрд╡рд░ рдкрд░ рд░рдЦрдирд╛ рдмреЗрд╣рддрд░ рд╣реИ - рджреЛрдиреЛрдВ рддреЗрдЬреА рд╕реЗ рдФрд░ рд╣рдо рдПрдХ рдФрд░ рд╕рд░реНрд╡рд░ рд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрддрдиреА рд╕рд░рд▓ рд╣реЛ рд╕рдХрддреА рд╣реИ:

#! / usr / рдмрд┐рди / рдкрд░реНрд▓

"рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдЯреЗрдХреНрд╕реНрдЯ / html \ n \ n $ ENV {REMOTE_ADDR}" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ;


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

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

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореБрдЭреЗ рджреЗрд╢ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░реЙрдХреНрд╕реА рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдХреНрдпреЛрдВрдХрд┐ рдкрд╣рд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдЕрдореЗрд░рд┐рдХрд╛ рд╕реЗ рдерд╛ред рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рд╣реЛрдорд╡рд░реНрдХ (рдЬрд┐рдпреЛ :: рдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ) рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░рдирд╛ рднреА рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред

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

рдкреБрдирд╢реНрдЪ: рд╡реАрдбрд┐рдпреЛ рджреЗрдЦрд╛ - рдЫреЛрдЯрд╛, рд▓реЗрдХрд┐рди рджрд┐рд▓рдЪрд╕реНрдкред

#! / usr / bin / perl -w

# рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
рд╕рдЦреНрдд рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ;
LWP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ :: UserAgent ;
рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ;
рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ : рд╕рд╛рдЭрд╛ ;

# рдЪрд░ рд╕реЗрдЯ рдХрд░рдирд╛
рдореЗрд░реЗ @ рд╕реВрддреНрд░ ;
рдореЗрд░реЗ @proxy ;
рдореЗрд░реЗ $ рдзрд╛рдЧреЗ = 100 ;
рдореЗрд░рд╛ $ last_p : рд╕рд╛рдЭрд╛ = 0 ;
рдореЗрд░реЗ $ ip_checker = 'http://www.myip.ru/get_ip.php?loc=' ;

# рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдирд╛рдо рдкреНрд░реЙрдХреНрд╕реА рдХреА рд╕реВрдЪреА
рдУрдкрди рд▓реЙрдЧ , ">> рдкреНрд░реЙрдХреНрд╕реА.рд▓реЙрдЧ" ;

# рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рдмрд╛рд╣рд░реА рдЖрдИрдкреА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ
рдореЗрд░реЗ $ ua = LWP :: UserAgent -> рдирдпрд╛ ;
$ ua -> рдПрдЬреЗрдВрдЯ ( "рдореЛрдЬрд╝рд┐рд▓рд╛ / 5.0" ) ;
рдореЗрд░рд╛ $ Res = $ ua -> рдорд┐рд▓рддрд╛ рд╣реИ ( $ ip_checker ) ;
рдмрд╛рд╣рд░ рдирд┐рдХрд▓реЗрдВ рдЕрдЧрд░ ( $ Res -> is_success ) ;
рдореЗрд░реЗ $ s = $ res -> рдбреАрдХреЛрдбреЗрдб / рдХреЙрдиреНрдЯреЗрдВрдЯ ;
$ s = ~ m / ( \ d + \ ред \ d + \ _ ред \ d + \ ред \ d + ) / s ;
рдореЗрд░реЗ $ myip = $ 1 ;

# рдкрд░рджреЗ рдХреЗ рдкреАрдЫреЗ рдХреА рд╕реВрдЪреА рдкрдврд╝реЗрдВ
рдЦреБрд▓рд╛ рдлрд┐рд▓реНрдореНрд╕ , 'рдкреНрд░реЙрдХреНрд╕реА ред рд▓рд┐рд╕реНрдЯ' ;
рдЬрдмрдХрд┐ ( $ s = <FIL> )
{
рдЬрдмрдХрд┐ ( $ s = ~ s / ( \ d + \ _ ред d + \ _ \ _ d + \ _ \ d +: \ d + // )
{
рдзрдХреНрдХрд╛ ( @proxy , $ 1 ) ;
}
}
рдкреНрд░рд┐рдВрдЯ "рдкреНрд░реЙрдХреНрд╕реА рдкрд╛рдпрд╛:" ред @proxy ред " \ _ " ;

# рдереНрд░реЗрдбреНрд╕ рдХреА рд╕рд╣реА рдорд╛рддреНрд░рд╛ рдмрдирд╛рдПрдВ
рдореЗрд░реЗ $ t ( 1 .. $ рдзрд╛рдЧреЗ ) рдХреЗ рд▓рд┐рдП {
рдкреБрд╢ @ рдереНрд░реЗрдбреНрд╕ , рдереНрд░реЗрдбреНрд╕ -> рдХреНрд░рд┐рдПрдЯ ( \ & check_proxy , $ t ) ;
}
# рд╣рдо рд╕рднреА рдзрд╛рдЧреЗ рдХреЗ рдЕрдВрдд рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ
рдореЗрд░реЗ $ t ( @threads ) рдкрд░ рдкрд╣реБрдВрдЪреЗрдВ {
$ t -> рдЬреБрдбрд╝ ( ) ;
}

рдЙрдк check_proxy
# рдкреНрд░реЙрдХреНрд╕реА рдЬрд╛рдВрдЪ
{
# рдХрд░рдВрдЯ рдирдВрдмрд░
рдореЗрд░реА $ рд╕рдВрдЦреНрдпрд╛ = рдкрд╛рд▓реА ;
рдкреНрд░рд┐рдВрдЯ "+ рдереНрд░реЗрдб $ рд╕рдВрдЦреНрдпрд╛ рд╢реБрд░реВ рд╣реБрдИред \ n " ;

# рдЕрдирдВрдд рд▓реВрдк
рдЬрдмрдХрд┐ ( 1 )
{
# рд╕реВрдЪреА рдореЗрдВ рдЕрдЧрд▓рд╛ рдирдВрдмрд░ рд▓реЗрдВ
рдореЗрд░реЗ $ seq = $ last_p ++;
# рдпрджрд┐ рд╕реВрдЪреА рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИ, рддреЛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ
рдЕрдЧрд░ ( $ seq > = @proxy )
{
рдкреНрд░рд┐рдВрдЯ "- рдереНрд░реЗрдб $ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ред \ n " ;
рд╡рд╛рдкрд╕реА;
}
# рд╕реВрдЪреА рд╕реЗ рдЕрдЧрд▓рд╛ рдкреНрд░реЙрдХреНрд╕реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
рдореЗрд░реЗ $ рдкреНрд░реЙрдХреНрд╕реА = $ рдкреНрд░реЙрдХреНрд╕реА [ $ seq ] ;

# рдкрддреНрдерд░рдмрд╛рдЬреА рд╢реБрд░реВ
рдореЗрд░реЗ $ ua = LWP :: UserAgent -> рдирдпрд╛ ;
$ ua -> рдПрдЬреЗрдВрдЯ ( "рдореЛрдЬрд╝рд┐рд▓рд╛ / 5.0" ) ;
$ ua -> рдкреНрд░реЙрдХреНрд╕реА ( [ 'http' ] , "http: // $ рдкреНрд░реЙрдХреНрд╕реА /" ) ;
рдореЗрд░рд╛ $ Res = $ ua -> рдорд┐рд▓рддрд╛ рд╣реИ ( $ ip_checker ) ;

# рд░рд┐рдкреЛрд░реНрдЯ
printf ( "рдереНрд░реЗрдб% 02d; Seqред% 03d; рдкреНрд░реЙрдХреНрд╕реА% 20s; рд╕реНрдерд┐рддрд┐:" , $ num , $ seq , $ xy ) ;
# рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛
рдЕрдЧрд░ ( $ res -> is_success ) {
"рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрдеред \ n " рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ;
рдЕрдЧрд▓рд╛ ;
}

# рдПрдХ рдЕрд▓рдЧ рдкреЗрдЬ
рдореЗрд░реЗ $ s = $ res -> рдбреАрдХреЛрдбреЗрдб / рдХреЙрдиреНрдЯреЗрдВрдЯ ;

# рдкреЗрдЬ рдкрд░ рд╣рдорд╛рд░рд╛ рдЖрдИрдкреА рд╣реИ, рдлрд┐рд░ рдкреНрд░реЙрдХреНрд╕реА рдЦреБрд▓рд╛ рд╣реИ
рдЕрдЧрд░ ( $ s = ~ m / $ myip / s )
{
рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ "рдЦреЛрд▓реЗрдВред \ n " ;
}
# рдЬрд╛рдВрдЪ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ рд╡рд╣ рдЕрдкрдирд╛ рдЖрдИрдкреА рдЫреЛрдбрд╝ рджреЗред
# рдпрджрд┐ рдкреГрд╖реНрда рдкрд░ рдХреБрдЫ рдЖрдИрдкреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░рд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдкреНрд░реЙрдХреНрд╕ рдЕрдирд╛рдо рд╣реИ
elsif ( $ s = ~ m / (\ d + \ _ ред d d \ _ ред \ d + \ _ \ d + / / ))
{
"рдмреЗрдирд╛рдореА! \ n " рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ ;
рдкреНрд░рд┐рдВрдЯ рд▓реЙрдЧ "$ рдкреНрд░реЙрдХреНрд╕реА \ n " ;
}
# рдХреБрдЫ рдмреБрд░рд╛ рд╣реБрдЖ
рдЕрдиреНрдпрдерд╛
{
рдкреНрд░рд┐рдВрдЯ "рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ ... \ n " ;
}
}
}

Source: https://habr.com/ru/post/In128477/


All Articles