рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рд╕реНрдХреНрд╡реАрдб рдХреЗ рд╕рд╛рде рд╣рд┐рдЯреНрд░реАрдо

рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдореИрдВ рдПрдХ рдирд╣реАрдВ рдмрд▓реНрдХрд┐ рдордиреЛрд░рдВрдЬрдХ рд▓реЗрдЦ (http://habrahabr.ru/blogs/sysadm/28063/) рдкрд░ рдЖрдпрд╛, рдЬрд┐рд╕рдиреЗ рдХреБрд▓ рдереНрд░реВрдкреБрдЯ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреНрд▓рд╕реНрдЯрд░ рдмрдирд╛рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ред рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рдерд╛ рдХрд┐ рдЗрд╕ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдорд╛рдзрд╛рди рдХрд╛ рд╕реНрдерд╛рди рдкреБрд░рд╛рдиреА рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рдореЗрдВ рдерд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рддрд┐рдмрд┐рдВрдм рдкрд░, рдпрд╣ рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рдирд┐рд╖реНрдХрд░реНрд╖ рдЖрдпрд╛ред

рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдХрд╛рд░реНрдпрд╛рд▓рдп, рдореЗрд░реА рддрд░рд╣, рднреМрдЧреЛрд▓рд┐рдХ рд░реВрдк рд╕реЗ рдХрд╛рдлреА рдорд╣рдВрдЧреЗ рдЗрдВрдЯрд░рдиреЗрдЯ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдмрдВрдзрди рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ рдЬреЛ рдЖрдИрдЯреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдмрд╣реБрдд рдмреБрджреНрдзрд┐рдорд╛рди рдирд╣реАрдВ рд╣реИред рдирддреАрдЬрддрди - рдПрдХ рд╣реБрдХ рдХреЗ рд╕рд╛рде 500 рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкрд╛рд╕ рдЕрдзрд┐рдХрддрдо рджреЛ рдореЗрдВ рдореЗрдЧрд╛рдмрд┐рдЯ рдЪреИрдирд▓ рд╣реЛрддрд╛ рд╣реИ; рдмрд╣реБрдд рдЦреБрд╢ рд╡рд╣ рдШрдВрдЯрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЧрддрд┐ 128 kbit / s рдирд┐рд╢рд╛рди рд╕реЗ рдКрдкрд░ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рдФрд░ рдпрд╣ рджреБрдЦ рд╕реЗ рдЕрдзрд┐рдХ рд╣реИред



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



рдЫрд╡рд┐



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



cache_peer рдкреНрд░реЙрдХреНрд╕реА рдкрддрд╛ рдореВрд▓ рдкреЛрд░реНрдЯ 0 рдиреЛ-рдХреНрд╡реЗрд░реА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧрд┐рди = рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛: рдкрд╛рд╕рд╡рд░реНрдб



рдЪреВрдВрдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЕрддреНрдпрдзрд┐рдХ рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕реЗ рдПрдХреНрд╕реЗрд╕ рддрдХ рд╕реАрдорд┐рдд рдХрд░реЗрдВред

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



рдХреИрд╢_рдкреАрдпрд░ рдХрд░реНрдордЪрд╛рд░реА рдкреНрд░реЙрдХреНрд╕реА рдкреЗрд░реЗрдВрдЯ рдкреЛрд░реНрдЯ 0 рдиреЛ-рдХреНрд╡реЗрд░реА рд░рд╛рдЙрдВрдб-рд░реЙрдмрд┐рди



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



рдпрджрд┐ рдкрд░рд┐рдгрд╛рдореА рд╕рдорд╛рдзрд╛рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдмрдврд╝рд╛рдиреЗ рдХреА рдЗрдЪреНрдЫрд╛ рд╣реИ, рддреЛ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдкреНрд░реЙрдХреНрд╕реА рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдХреЗрд╡рд▓ рдХрд░реНрдордЪрд╛рд░реА рдФрд░ рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рднрд╛рдЧ рдЙрди рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВ:



acl рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ src 127.0.0.1/32

acl proxynet src рдкреНрд░реЙрдХреНрд╕реА рд╡рд┐рднрд╛рдЧ

http_access рдкреНрд░реЙрдХреНрд╕реА рдХреЛ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

http_access рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ

http_access рд╕рднреА рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ



рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХреНрд▓рд╕реНрдЯрд░ рд╕реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рднрд╛рдЧ рдХреЗ рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдЗрдиреЗрдВ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдореВрд▓ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рд╡рд┐рдВрдбреЛрдЬ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рд╕реНрдХреНрд╡реАрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдкрде рд╕рд╣реА рд╣реЛрддреЗ рд╣реИрдВ):



рдУрд░рд┐рдЬрдирд▓_рдкрд░рдо рдмреЗрд╕рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо c: /squid/libexec/ncsa_auth.exe c: / squid / etc / passwd

рдореВрд▓_рдкрд░рдо рдореВрд▓ рдмрдЪреНрдЪреЗ рел

рдСрд░рд┐рдЬрдирд▓_рдкрд░рдо рдмреЗрд╕рд┐рдХ рдХреЗрд╕реЗрдВрд╕рд┐рдЯрд┐рд╡ рдСрдл

acl рдкреНрд░рдорд╛рдгреАрдХреГрдд рдкреНрд░реЙрдХреНрд╕реА_рдСрде рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛

http_access рдЗрдирдХрд╛рд░!



рдФрд░ c: / squid / etc / passwd рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, рд▓реЙрдЧрд┐рди / рдкрд╛рд╕рд╡рд░реНрдб рд╣реИрд╢ рдЬреЛрдбрд╝реЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред



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



рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛рдлреА рддреБрдЪреНрдЫ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдпрд╣рд╛рдВ рджреВрдВрдЧрд╛ред GetPeers рд╡рд┐рдзрд┐, рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рднрд╛рдЧ рдкреНрд░реЙрдХреНрд╕реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реА рд╣реИ, рд╕рднреА рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░реЛрдВ рдХреА рд╕реВрдЪреА рдЦреАрдВрдЪрддреА рд╣реИ:



private static IEnumerable<String> GetPeers(string configFileName)

{

char[] separators = new char[]{' ', '\t'};

List<String> strings = new List<String>();

StreamReader reader = new StreamReader(configFileName, Encoding.Default);

while (!reader.EndOfStream)

{

string st = reader.ReadLine().Trim();

if (st.ToLower().StartsWith("cache_peer"))

{

string[] substrings = st.Split(separators);

strings.Add("http://" + substrings[1] + ":" + substrings[3]);

}

}

return strings;

}







IsPeerAvaliable рд╡рд┐рдзрд┐ рдирд┐рд░реНрджрд┐рд╖реНрдЯ URL рдХреЗ рд╕рд╛рде рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреА рд╣реИред PeerStatus рдЧрдгрди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╢реИрдХреНрд╖рдгрд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рдг рд╡рд┐рдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ "рдХрд┐рд╕реА рднреА рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ" рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ:



private static PeerStatus IsPeerAvaliable(string peer)

{

WebRequest request = WebRequest.Create("http://ya.ru");

request.Method = "GET";

request.Proxy = new WebProxy(peer);

request.Timeout = 5000;

try

{

request.GetResponse();

return PeerStatus.OK;

}

catch (WebException ex)

{

if (ex.Status == WebExceptionStatus.ConnectFailure)

return PeerStatus.Offline;

if (ex.Status == WebExceptionStatus.ProtocolError)

return PeerStatus.AuthError;

return PeerStatus.Error;

}

catch (Exception ex)

{

return PeerStatus.Error;

}

}







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



рдЫрд╡рд┐



рдЗрд╕рд╕реЗ рдХреНрдпрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?




All Articles