PHP рдореЗрдВ IPv6 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

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



рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ


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

рдЬреЛ рд▓реЛрдЧ рдкрд╣рд▓реЗ IPv6 рдПрдиреЛрдЯреЗрд╢рди рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд╣рддреЛрддреНрд╕рд╛рд╣рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг 64.233.177.101 рдХреЗ рдмрд╛рдж , рд╣рдо рдЕрдЪрд╛рдирдХ 2607: f8b0: 4002: c08 :: 8b рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рднреНрд░рдорд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ рдХрд┐, рдФрд░ рдПрдХ рдФрд░ - рдХреНрд░рдорд╢рдГ 32 рдФрд░ 128 рдмрд┐рдЯреНрд╕ рдХрд╛ рдХреЗрд╡рд▓ рдорд╛рдирд╡-рдкрдардиреАрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ред рдХрд┐рд╕реА рднреА IP рдкреИрдХреЗрдЯ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдмрд┐рдЯ рдХреЗ рдХрдбрд╝рд╛рдИ рд╕реЗ рдорд╛рдирдХреАрдХреГрдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реЗрдбрд░ рд╣реЛрддрд╛ рд╣реИред рд╣реЗрдбрд░ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдФрд░ рднреА рдЧрд╣рд░рд╛рдИ рддрдХ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛, рд╣рдореЗрдВ рдпрд╣рд╛рдВ рд╕реЗ рдПрдХ рдЪреАрдЬ рдХреЛ рдмрд╛рд╣рд░ рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рдЖрдИрдкреА рдкрддреЗ рдФрд░ рд░реЗрдВрдЬ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдмрд╛рдЗрдирд░реА рдЧрдгрд┐рдд рдФрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдиреНрд╣реЗрдВ IPv4 рдХреЗ рд▓рд┐рдП BINARY (4) рдФрд░ IPIN6 рдХреЗ рд▓рд┐рдП BINARY (16) рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╕рдмрд╕реЗ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

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

рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ, рдпрд╣ ip.add.re.ss. / cidr рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 64.233.177.0/24 рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдкрд╣рд▓реЗ 24 рдмрд┐рдЯреНрд╕ рдЙрдкрд╕рд░реНрдЧ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрддрд┐рдо 8 рдмрд┐рдЯреНрд╕, рд╡реЗ рдорд╛рдирд╡-рдкрдардиреАрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рдЕрдВрддрд┐рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИрдВ, рд╕рдмрдиреЗрдЯ рдХреЗ рдЕрдВрджрд░ рдХреЗ рдкрддреЗ рдХреЛ рджреЗрдЦреЗрдВред рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдпрд╛рдоред 64.233.177.101/32 рдФрд░ 2607: f8b0: 4002: c08 :: 8b / 128 - рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрддрд╛ рдирд╣реАрдВред 2607: f8b0: 4002: c08 :: / 64 - рдкрд╣рд▓реЗ 64 рдмрд┐рдЯреНрд╕ (рдкрд╣рд▓реЗ 4 рд╕рдореВрд╣) - рдЙрдкрд╕рд░реНрдЧ, рд╢реЗрд╖ 64 рдмрд┐рдЯреНрд╕ - рд╕реНрдерд╛рдиреАрдп рднрд╛рдЧред рд╡реИрд╕реЗ, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ "::" рд╕реЗ рд╢рд░реНрдорд┐рдВрджрд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбрдмрд▓ рдХреЛрд▓рди рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ 0. рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдХреЗрд╡рд▓ 1 рдмрд╛рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, 2607: f8b0: 4002: c08 :: 8b = 2607: f8b0: 4002: c08: 0: 0: 0: 8b ред

рдЗрд╕ рд╕рдм рд╕реЗ рд╣рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдЦрдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ? рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд╣рд▓реЗ рдФрд░ рдЖрдЦрд┐рд░реА рд╕рдмрдиреЗрдЯ рдкрддреЗ рдмрд╛рдЗрдирд░реА рдФрд░ рдУрдЖрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╛рдЗрдирд░реА рд░реВрдк рдореЗрдВ рдореБрдЦреМрдЯрд╛ рдХреЛ рдЬрд╛рдирддреЗ рд╣реБрдПред рджреВрд╕рд░реЗ, рдЖрдХрд╛рд░ рдХреЗ рдЕрдЧрд▓реЗ рд╕рдмрдиреЗрдЯ (рдпрд╛рдиреА CIDR рдХреЗ рд╕рд╛рде) n рдХреЛ рдмрд╛рдЗрдирд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЗрдВ 1 рд╕реЗ n- рд╡реЗрдВ рд╕реНрдерд╛рди рдкрд░ рдЬреЛрдбрд╝рдХрд░ рдЧрдгрдирд╛ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред рдмрд╛рдЗрдирд░реА рд╡реНрдпреВ рджреНрд╡рд╛рд░рд╛, рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдмрд╛рдЗрдирд░реА рджреНрд╡рд╛рд░рд╛ рдлрд╝рдВрдХреНрд╢рди рдкреИрдХ () рдФрд░ inet_pton () рдФрд░ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЗ рдЖрдЧреЗ рдЙрдкрдпреЛрдЧ рдХрд╛ рдкрд░рд┐рдгрд╛рдо - рдмрд╛рдЗрдирд░реА рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡, рдЬрд┐рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, base_convert () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗред

рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдкреГрд╖реНрдарднреВрдорд┐
рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╡рд░реНрдЧрд╡рд┐рд╣реАрди рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХрд╛ рд╡рд░реНрдЧреАрдп рдЕрд▓рдЧрд╛рд╡ ред рдЙрди рджреВрд░ рдХреЗ рд╡рд░реНрд╖реЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рднреА рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ рдЗрддрдиреЗ рд╕рд╛рд░реЗ рд╕рдмрдиреЗрдЯ рд╣реЛрдВрдЧреЗ; рдЙрдиреНрд╣реЗрдВ рдмрдбрд╝реЗ рдмреНрд▓реЙрдХреЛрдВ рдореЗрдВ рджрд╛рдПрдВ рдФрд░ рдмрд╛рдПрдВ рдмрд╛рдВрдЯрд╛ рдЧрдпрд╛ рдерд╛: рдХрдХреНрд╖рд╛ рдП - рдкрд╣рд▓реЗ 8 рдмрд┐рдЯреНрд╕ (рдпрд╛рдиреА, рдкрд╣рд▓реА рд╕рдВрдЦреНрдпрд╛) рдЙрдкрд╕рд░реНрдЧ рдереЗ, рдЬрд┐рд╕рдореЗрдВ рдЕрдЧреНрд░рдгреА 0 рдереЗ; рдХрдХреНрд╖рд╛ рдмреА - рдкрд╣рд▓реЗ 16 (рдкрд╣рд▓реЗ рджреЛ рдирдВрдмрд░), 10 рдХреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдЯреНрд╕; рдХрдХреНрд╖рд╛ рд╕реА - рдкрд╣рд▓реЗ 24 рдмрд┐рдЯреНрд╕, 110 рдХреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдЯреНрд╕ред рдпреЗ рд╡рд╣реА рдЕрдЧреНрд░рдгреА рдмрд┐рдЯреНрд╕ рдЙрди рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рдирдореЗрдВ рдПрдХ рд╡рд░реНрдЧ рдХрд╛ рдкрддрд╛ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдХрдХреНрд╖рд╛ рдП рдХреЗ рд▓рд┐рдП 0.0.0.0 - 127.255.255.255 , 128.0.0.0 - 191.255.255.255 - рдХрдХреНрд╖рд╛ рдмреА, 192.0 .0.0 - 223.255.255.255 - рд╡рд░реНрдЧ рд╕реАред рдЬреИрд╕рд╛ рдХрд┐ рдЗрдВрдЯрд░рдиреЗрдЯ рдЧреНрд░рд╣ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдлреИрд▓рд╛ рд╣реИ, рдирд┐рдпрд╛рдордХреЛрдВ рдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рд╡реЗ рдЪреВрдХ рдЧрдП рдереЗ, рдФрд░ 90 рдХреЗ рджрд╢рдХ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдПрдХ рдХреНрд▓рд╛рд╕рд▓реЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╡рд┐рдХрд╕рд┐рдд рдХреА, рдЬрд┐рд╕рдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдЧреНрд░рдгреА рдмрд┐рдЯреНрд╕ рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреАред рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╡рд░рдг рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрд╣рддреЗ рд╣реИрдВ, рдорд╣рд╛рди рдФрд░ рд╕рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ ред


рдЕрднреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВ


рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рд╣рдо рддреАрди рд╕рдмрд╕реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрд╛рд░реНрдп:

  1. рд╕реАрдорд╛ рдХрд╛ рдкрд╣рд▓рд╛ рдФрд░ рдЕрдВрддрд┐рдо рдкрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  2. рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдЖрдХрд╛рд░ (CIDR) рдХреА рдЕрдЧрд▓реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛;
  3. рдпрд╣ рдЬрд╛рдБрдЪрдирд╛ рдХрд┐ рдкрддрд╛ рдПрдХ рд╕реАрдорд╛ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди IPv6 рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рддреЛ рддрд░реНрдХ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдпрд╣рд╛рдВ рд╕реЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ рдорд┐рд▓реЗ, рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдЗрдирдкреБрдЯ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдХреЛрдИ рдЬрд╛рдВрдЪ рдирд╣реАрдВ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рдЪрд▓рддреЗ рд╣реИрдВред

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

function cidrToMask ($cidr) { $mask = str_repeat('f', ceil($cidr / 4)); $mask .= dechex(4 * ($cidr % 4)); $mask = str_pad($mask, 32, '0'); return pack('H*', $mask); } 

рдХреЙрд▓ рдкреИрдХ ('рдПрдЪ *', $ рдорд╛рд╕реНрдХ) inet_pton () рдХреА рддрд░рд╣ рд╣реА рд╣реЗрдХреНрд╕ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдкреИрдХ рдХрд░рддрд╛ рд╣реИред рдЕрдВрддрд░ рдХреЗрд╡рд▓ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЬрдм рдЖрдк рдкреИрдХ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ (), рд╕рднреА 0 рдХреЛ рдЬрдЧрд╣ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдорд╛рдирд╡-рдкрдардиреАрдп рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдореЗрдВ рдХреЛрдИ рдмреГрд╣рджрд╛рдиреНрддреНрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

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

 function getRangeBoundary ($ip, $cidr, $which, $ipIsBin = false, $returnBin = false) { $mask = cidrToMask($cidr); if (!$ipIsBin) { $ip = inet_pton($ip); } $ipParts = str_split($ip, 4); $maskParts = str_split($mask, 4); $rangeParts = []; for ($i = 0; $i < count($ipParts); $i++) { if ($which == 'start') { /*  &       . */ $rangeParts[$i] = $ipParts[$i] & $maskParts[$i]; } else { /*  |    (~)           1. */ $rangeParts[$i] = $ipParts[$i] | ~$maskParts[$i]; } } $rangeBoundary = implode($rangeParts); if ($returnBin) { return $rangeBoundary; } else { return inet_ntop($rangeBoundary); } } 

рднрд╡рд┐рд╖реНрдп рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЖрдИрдкреА рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдФрд░ рджреНрд╡рд┐рдЖрдзрд╛рд░реА рдФрд░ рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рдпрд╣рд╛рдБ рдЬреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд░реЗрдВрдЬ рдХреА рд╢реБрд░реБрдЖрдд рдпрд╛ рдЕрдВрдд рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдореВрд▓реНрдп рдХреНрд░рдорд╢рдГ 'рд╢реБрд░реВ' рдпрд╛ 'рдЕрдВрдд' рд╣реИрдВ)ред

рдЕрдЧрд▓рд╛ рдХрд╛рд░реНрдп (рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХреЗ рдЕрд▓рд╛рд╡рд╛) рдЕрдЧрд▓реА рд╢реНрд░реЗрдгреА рдХреА рдЧрдгрдирд╛ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рджрд┐рдорд╛рдЧ рдореЗрдВ рдХреБрдЫ рднреА рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдЖрдпрд╛, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдХреИрд╕реЗ рдмрд╛рдЗрдирд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрддреЗ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рд╡рд╛рдВрдЫрд┐рдд рд╕реНрдерд╛рди рдкрд░ 1 рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП, рдлрд┐рд░ рд╕рдм рдХреБрдЫ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПред рдХрд▓рд╛рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХрд╣реАрдВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдЕрдкрдШрдЯрди рдФрд░ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреЗ рджреМрд░рд╛рди рдмрд╛рдЗрдЯ рджреНрд╡рд╛рд░рд╛ рдкрддреЗ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред

 function getNextBlock ($ipStart, $cidr, $ipIsBin = false, $returnBin = false) { if (!$ipIsBin) { $ipStart = inet_pton($ipStart); } $ipParts = str_split($ipStart, 1); $ipBin = ''; foreach ($ipParts as $ipPart) { $ipBin .= str_pad(base_convert(unpack('H*', $ipPart)[1], 16, 2), 8, '0', STR_PAD_LEFT); } /*  1       "" :) */ $i = $cidr - 1; while ($i >= 0) { if ($ipBin[$i] == '0') { $ipBin[$i] = '1'; break; } else { $ipBin[$i] = '0'; } $i--; } $ipBinParts = str_split($ipBin, 8); foreach ($ipBinParts as $key => $ipBinPart) { $ipParts[$key] = pack('H*', str_pad(base_convert($ipBinPart, 2, 16), 2, '0', STR_PAD_LEFT)); } $nextIp = implode($ipParts); if ($returnBin) { return $nextIp; } else { return inet_ntop($nextIp); } } 

рдЖрдЙрдЯрдкреБрдЯ рдкрд░, рд╣рдореЗрдВ $ cidr рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЕрдЧрд▓реЗ рдЖрдХрд╛рд░ рд╕реАрдорд╛ рдХрд╛ рдЙрдкрд╕рд░реНрдЧ рдорд┐рд▓рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдкрддрд╛ рдмреНрд▓реЙрдХ рдЖрд╡рдВрдЯрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

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

 function ipInRange ($ip, $rangeStart, $cidr) { $start = getRangeBoundary($rangeStart, $cidr, 'start',false, true); $end = getRangeBoundary($rangeStart, $cidr, 'end',false, true); $ipBin = inet_pton($ip); return ($ipBin >= $start && $ipBin <= $end); } 

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

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВ рдпрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрдирдиреЗ рдХреА рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдЬрд╛рд░реА рд╣реЛрдиреЗ рдХреЗ рдЕрд╡рд╕рд░ рдкрд░, рд╣рдорд╛рд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рд╕рднреА vps рд╕реЗрд╡рд╛рдУрдВ рдпрд╛ рдЗрдХреНрд╡рд┐рдирд┐рдХреНрд╕ рдЯрд┐рдпрд░ IV рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ рдПрдХ рд╕рдорд░реНрдкрд┐рдд рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдореБрдлреНрдд рдореЗрдВ рдмреНрд▓реЙрдХ / 64 рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдиреАрджрд░рд▓реИрдВрдб, рдмрд┐рдХреНрд░реА рд╡рд┐рднрд╛рдЧ рдХреЗ рдЕрдиреБрд░реЛрдз рдкрд░, рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рджрд╛рди рдХрд░рдХреЗред рдЯрд┐рдХрдЯ рдореЗрдВ рдпрд╣ рд▓реЗрдЦред рдпрд╣ рдСрдлрд░ рдорд╛рд░реНрдЪ 2020 рддрдХ рд╡реИрдз рд╣реИред

рд╡рд┐рдЬреНрдЮрд╛рдкрди рдХрд╛ рдПрдХ рд╕рд╛ :)


рд╣рдорд╛рд░реЗ рд╕рд╛рде рдмрдиреЗ рд░рд╣рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдХреНрдпрд╛ рдЖрдк рд╣рдорд╛рд░реЗ рд▓реЗрдЦ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ? рдЕрдзрд┐рдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рд╛рдордЧреНрд░реА рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ? рдПрдХ рдСрд░реНрдбрд░ рджреЗрдХрд░ рдпрд╛ рдЕрдкрдиреЗ рджреЛрд╕реНрддреЛрдВ рд╕реЗ, $ 4.99 рд╕реЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЙрдб-рдЖрдзрд╛рд░рд┐рдд VPS , рдПрдВрдЯреНрд░реА-рд▓реЗрд╡рд▓ рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рдЕрдиреЛрдЦрд╛ рдПрдирд╛рд▓реЙрдЧ , рдЬреЛ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдИрдЬрд╛рдж рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: VPS (KVM) E5-2696 v3 (6 рдХрд░реЛрдбрд╝) 10GB DDR4 480GB SSD 1Gbps рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреВрд░реА рд╕рдЪреНрдЪрд╛рдИ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдХреЗ рд╣рдореЗрдВ рд╕рдорд░реНрдерди рджреЗрдВ ред $ 19 рдпрд╛ рд╕рд░реНрд╡рд░ рдХреЛ рдХреИрд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░реЗрдВ? (рд╡рд┐рдХрд▓реНрдк RAID1 рдФрд░ RAID10 рдХреЗ рд╕рд╛рде рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, 24 рдХреЛрд░ рддрдХ рдФрд░ 40GB DDR4 рддрдХ)ред

рдбреЗрд▓ R730xd рдПрдореНрд╕реНрдЯрд░реНрдбрдо рдореЗрдВ рдЗрдХреНрд╡рд┐рдирд┐рдХреНрд╕ рдЯреАрдпрд░ IV рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░ рдореЗрдВ 2 рдЧреБрдирд╛ рд╕рд╕реНрддрд╛? рдХреЗрд╡рд▓ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV рдиреАрджрд░рд▓реИрдВрдб рдХреЗ 199 рдбреЙрд▓рд░ рдореЗрдВ рд╕реЗ рд╣реИ! рдбреЗрд▓ R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $ 99 рд╕реЗ! рдЗрдиреНрдлреНрд░рд╛рд╕реНрдЯреНрд░рдХреНрдЪрд░ Bldg рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝реЗрдВ ред рдПрдХ рдкреИрд╕рд╛ рдХреЗ рд▓рд┐рдП 9,000 рдпреВрд░реЛ рдХреА рд▓рд╛рдЧрдд рдбреЗрд▓ R730xd E5-2650 v4 рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╡рд░реНрдЧ?

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


All Articles