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

рдпрд╣ IP-schnicks рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рдЧреЛрд▓ рд╕реЗ рдкреВрд░реНрдгрд╛рдВрдХ рддрдХ) рдХрд╛ рдЪрдпрди рд╣реИред
рд╣рдо рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣
рдЗрдВрдЯрд░рдиреЗрдЯ рдЯреАрд╕реАрдкреА / рдЖрдИрдкреА рдЖрд╡рд╛рд╕
рдХреА рдПрдХ
рддрд╕реНрд╡реАрд░ рд╣реИ
рдзреНрдпрд╛рди рджреЗрдВ, рд▓реЗрдЦрдХ рд╢рдмреНрдж рдХреЗ рдЕрдЪреНрдЫреЗ рдЕрд░реНрдереЛрдВ рдореЗрдВ рдХреЛрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЙрди рд▓реЛрдЧреЛрдВ рд╕реЗ рдкреВрдЫрддрд╛ рд╣реВрдВ, рдЬреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЙрдкреНрд░реЛрдХреЛрдб рд╕реЗ рд╣реИрд░рд╛рди рд╣реИрдВредрдЬрд╣рд╛рдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рддреБрд░рдВрдд рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд░рд╕рд┐рджреНрдз рдЬрд┐рдпреЛрдЖрдИрдкреА рд╣реИ, рдЬрд┐рд╕рдиреЗ рд╣рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдорджрдж рдХреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рдпреЛрд▓рд╛рдЗрдЯ рдореЗрдВ рд╕рдордиреНрд╡рдп рдХреЗ рд░реВрдк рдореЗрдВ рдЗрддрдиреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реИред
#geoiplookup -f /usr/local/share/GeoIP/GeoLiteCity.dat 90.155.128.74
GeoIP City Edition, Rev 1: RU, 48, Moscow, N/A, 55.752201, 37.615601, 0, 0
рд╕рдЪ рд╣реИ, рд╡рд╣ рдорд╛рдирддреА рд╣реИ рдХрд┐ рдореИрдВ рдмреБрдЯреЛрд╡реЛ рд╕реЗ
рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдЧрд╛рд░реНрдбрди рдореЗрдВ рдЪрд▓реА рдЧрдИред рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдирд╣реАрдВ, рд╣рдореЗрдВ рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
GeoLiteCity.dat рдлрд╝рд╛рдЗрд▓ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдкрд░ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╣реА рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╡реГрдХреНрд╖ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ, рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрднреА рддрдХ рд╕реНрдореЛрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕реЗ рдЬрд▓реНрджреА рдФрд░ рджрд░реНрдж рд░рд╣рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдкрд╛рд░реНрд╕ рдХреИрд╕реЗ рдХрд░реЗрдВред
рдкрд╣рд▓реЗ рд╕реЛрдЪрд╛ рддреБрд░рдВрдд рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рджрд░реНрдЬ рдХрд░рдиреЗ рдореЗрдВ рд╕рднреА рд╕рдВрднрд╡ рдЖрдИрдкреА рдкрддреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЖрдпрд╛ред
256 ^ 4 = 4294967296 рдорд╛рдЗрдирд╕ рдмреИрдХрдЕрдк, рд▓реЛрдХрд▓ рдЖрджрд┐ред рд╕рднреА рд╕рдорд╛рди, рдпрд╣ рд╕рдордп рдХреЗ рдЕрдиреБрдорд╛рдиреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХреГрдкрдпрд╛ рдирд╣реАрдВ рд╣реИред
рдЫрд╣ рдорд╣реАрдиреЗ рдореЗрдВ рдЦрддреНрдо рдХрд░реЛ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИредрдкрд╣реЗрд▓реА рдХреЗ рдПрдХ рд╕рдХреНрд░рд┐рдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдпрд╛рдж рдЖрдпрд╛ рдХрд┐ рдЬрд┐рдпреЛрдЖрдИрдкреА рдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рдереЗ, рдФрд░ рд╕реАрдПрд╕рд╡реА рдмрд┐рдВрдЧреЛ рдкреНрд░рд╛рд░реВрдк рдиреЗ рд░реВрд╕реА рд▓реЛрдХрддрдВрддреНрд░ рдХреЗ рдкрд┐рддрд╛ рдХреЛ рдмрдЪрд╛рдпрд╛ред
рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓:
5751,"US","NY","Albany","12209",42.6390,-73.7890,532,518
5752,"US","NY","Hillsdale","12529",42.2164,-73.5413,532,518
5753,"US","NY","Albany","12225",42.6706,-73.7791,532,518
рдХреБрд▓ 310070 рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБред
рдЪреВрдБрдХрд┐ рд╕рднреА рддреАрди рд╕реМ рд╣рдЬрд╝рд╛рд░ рдЕрдВрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЪрд┐рддреНрд░ рдмрдирд╛рдирд╛ рдХреЛрд╖реЗрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ CSV рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧреА рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЕрджреНрд╡рд┐рддреАрдп рдЧреЛрд▓рд╛рдХрд╛рд░ рдкрджреЛрдВ рдХреЛ рджрд░реНрдЬ рдХрд░реЗрдЧреА, рдФрд░ рдлрд┐рд░ рдбреЗрдЯрд╛рдмреЗрд╕ рд╕реЗ рдПрдХ рдЪрдпрди рдХрд░реЗрдЧреА рдФрд░ рдПрдХ рдЪрд┐рддреНрд░ рдмрдирд╛рдПрдЧреАред
рдХреНрдпреЛрдВ рдЧреЛрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛, рдореБрдЭреЗ рдЙрдЪреНрдЪ рд╕рдЯреАрдХрддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдереА, рдЗрд╕рд▓рд┐рдП рд▓рдВрдмрд╛рдИ рдФрд░ рдЕрдХреНрд╖рд╛рдВрд╢ рдХрд╛ рдмрд┐рдВрджреБ рдкрд░реНрдпрд╛рдкреНрдд рдерд╛ред
рдпрджрд┐ рдЖрдк 1800 рддрдХ 3600 рдХреЗ рдЖрдХрд╛рд░ рдЬреИрд╕рд╛ рдХреБрдЫ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдкреЛрд╕реНрдЯ рдХреЛ рдЕрдВрдд рддрдХ рдкрдврд╝рдиреЗ рдХреЗ
рд▓рд┐рдП рдЗрд╕ рдкреНрд░рдпреЛрдЧ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред
рд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЪреБрдирд╛рд╡ред
MySQL - рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦрдбрд╝рд╛ рд╣реИ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд╛рде рдореЗрдВ рд╣реИред рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╡рд╣рд╛рдБ рдмрдирд╛рдИ рдЧрдИ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ 4 рдХреЙрд▓рдо (x, y, kol, рджреЛ рдкрд░реНрдпрд╛рдкреНрдд рдереЗ, рд▓реЗрдХрд┐рди рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЛ рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛрдбрд╝рд╛ рд╣реИ рдХрд┐ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХреЗрдВрджреНрд░рд┐рдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдХрд╣рд╛рдБ рд╣реИрдВ)
рдкрд░реНрд▓ - рдПрдХ рд╕реАрдПрд╕рд╡реА рдкрд╛рд░реНрд╕рд░ рд▓рд┐рдЦрдиреЗ рдФрд░ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЗрд╕реЗ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рд╕рдВрдЪрд╛рд░рдХ рд╕реЗ рдПрд╕рдПрд╕рдПрдЪ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬреЛ рдореЗрдВ рд▓рд┐рдЦрдирд╛ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред Perlists рдкреЗрд╢реЗрд╡рд░реЛрдВ рдХреГрдкрдпрд╛ рдХреЛрдб рдкрд░ рдЬреНрдпрд╛рджрд╛ рдордд рджреЗрдЦреЛред
рдЬреАрдбреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рд╛рде
PHP , рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЪрд┐рддреНрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХреНрдпреЛрдВ? рдорд╣рд╛рди рдЕрдиреБрднрд╡ рдкреАрдПрдЪрдбреА рд╕реЗ рдЬреАрдбреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП,
рдЕрдВрддрд┐рдо CSV рдлрд╝рд╛рдЗрд▓ рдбрд╛рдЙрдирд▓реЛрдб
рдХрд░реЗрдВ ред
рдПрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдмрдирд╛рдПрдБ:
CREATE DATABASE IF NOT EXISTS `geo`;
CREATE TABLE IF NOT EXISTS `all` (
`x` int(3) NOT NULL,
`y` int(3) NOT NULL,
`kol` int(64) NOT NULL
);
рд╣рдо рдПрдХ рдкрд╛рд░реНрд╕рд░ рдмрдирд╛рддреЗ рд╣реИрдВ:#! / usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / рдкрд░реНрд▓
рдореИрд╕рдХрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ;
"start \ n" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;
рдореЗрд░реЗ $ рдореЗрдЬрдмрд╛рди = "рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ";
рдореЗрд░рд╛ $ рдбреЗрдЯрд╛рдмреЗрд╕ = "рдЬрд┐рдпреЛ";
рдореЗрд░реЗ $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = "рдЬрд┐рдпреЛ";
рдореЗрд░реА $ рддрд╛рд▓рд┐рдХрд╛ = "рд╕рднреА";
рдореЗрд░рд╛ $ рдкрд╛рд╕рд╡рд░реНрдб = "рдУрд▓реЛрд▓реЛрдкрд╛рд╡рд░реЛрд▓рдХреЛ";
my $ db = Mysql-> рдХрдиреЗрдХреНрдЯ ($ рд╣реЛрд╕реНрдЯ, $ рдбреЗрдЯрд╛рдмреЗрд╕, $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, $ рдкрд╛рд╕рд╡рд░реНрдб);
$ sql = "рд╕реЗрд▓реЗрдХреНрдЯ * FROM` $ table`";
$ sth = $ db-> рдХреНрд╡реЗрд░реА ($ sql);
arr = $ sth-> FetchRow;
рдореЗрд░реЗ $ vsego = 0;
рдореЗрд░реЗ $ рдЕрдирд┐рдХ = 0;
рдореЗрд░реЗ $ рдареАрдХ = 0;
# рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ, рдбреЗрдЯрд╛ рдХреЛ рд╕рд░рдгреА рдореЗрдВ рдлреЗрдВрдХ рджреЗрдВ рдФрд░ рдЗрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдВред
рдЦреБрд▓рд╛ (рдЬреАрдПрд▓, "/home/klef/geo/GeoLiteCity-Location.csv");
@ рднреВ_рд░ =;
рдмрдВрдж (рдЬреАрдПрд▓);
$ рдЕрдзрд┐рдХрддрдо = $ # geo_arr;
рдХреЗ рд▓рд┐рдП ($ i = 0; $ i <= $ # geo_arr; $ i ++) {
$ vsego ++;
@ geo_a = рд╡рд┐рднрд╛рдЬрд┐рдд (",", $ geo_arr [$ i]);
рдЕрдЧрд░ ($ # рдЬрд┐рдпреЛ_ рдП> 6) {
$ рдареАрдХ ++;
$ x = рд╕реНрдкреНрд░рд┐рдВрдЯрдл ("%ред 0f", $ geo_a [5]);
$ y = рд╕реНрдкреНрд░рд┐рдВрдЯрдл ("%ред 0f", $ рдЬрд┐рдпреЛ_ рдП [6]);
# рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдРрд╕реЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рд╣реИрдВ
$ sql = "рд╕реЗрд▓реЗрдХреНрдЯ * FROM` $ рдЯреЗрдмрд▓` рдЬрд╣рд╛рдВ x = $ x рдФрд░ y = $ y ";
$ sth = $ db-> рдХреНрд╡реЗрд░реА ($ sql);
arr = $ sth-> FetchRow;
рдЕрдЧрд░ ($ # рдЧрд┐рд░рдлреНрддрд╛рд░> = 0) {
# рд╡рд╣рд╛рдБ рд╣реИ? рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рджреЗрдВ
$ nov_s = $ рдЧрд┐рд░рдлреНрддрд╛рд░реА [3] +1;
$ sql = "UPDATE` $ рдбреЗрдЯрд╛рдмреЗрд╕`.` $ рдЯреЗрдмрд▓ 'SET` kol` =' $ nov_s 'WHERE` $ рддрд╛рд▓рд┐рдХрд╛`.`x` = $ x рдФрд░ `$ рддрд╛рд▓рд┐рдХрд╛`.`y` = $ y рдФрд░` $ рддрд╛рд▓рд┐рдХрд╛`.`рдХреЛрд▓` = $ рдЧрд┐рд░рдлреНрддрд╛рд░реА [3] рд╕реАрдорд╛ 1 ;;
$ db-> рдХреНрд╡реЗрд░реА ($ sql);
} {
# рдХреЛрдИ рдмрд╛рдд рдирд╣реАрдВ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ
$ sql = "INSERT INTO` $ рдбреЗрдЯрд╛рдмреЗрд╕`.` $ рдЯреЗрдмрд▓ '(` x`, `y`,` kol`) VALUES (' $ x ',' $ y ',' 1 '); ";
$ db-> рдХреНрд╡реЗрд░реА ($ sql);
рдкреНрд░рд┐рдВрдЯ "рдирдпрд╛";
$ рдпреВрдирд┐рдХ ++;
}
}
}
# рдпрд╣ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдЕрдВрдд рдореЗрдВ рд╣рдо рдЦреБрд╢реА рд╕реЗ рджрд┐рдЦрд╛рдПрдВрдЧреЗ рдХрд┐ рдХрд┐рддрдирд╛
$ vsego_p = sprintf ("%ред 2f", $ vsego * 100 / $ рдЕрдзрд┐рдХрддрдо);
$ ok_p = рд╕реНрдкреНрд░рд┐рдВрдЯрдл ("%ред 2f", $ рдареАрдХ * 100 / $ рдЕрдзрд┐рдХрддрдо);
$ unik_p = sprintf ("%ред 2f", $ unik * 100 / $ max);
$ itog = "\ nObrabotano: $ vsego_p% ($ vsego) \ nNormalnih: $ ok_p% ($ ok) \ nUnikalnih: $ unik_p% ($ unik) \ n";
$ itog рдкреНрд░рд┐рдВрдЯ;
"END \ n" рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ;
рдФрд░ рджреВрд░ рд╣рдо рдЬрд╛рддреЗ рд╣реИрдВ, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп рдореЗрдВ рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рдирд╣реАрдВ рдереА рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдерд╛, рд▓реЗрдХрд┐рди рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рдореВрд░реНрдЦрддрд╛рдкреВрд░реНрдг рдФрд░ рд╕реБрдВрджрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд┐рдирд╛ рдХреНрд░рдо рдореЗрдВ рдЗрд╕реЗ рд╣рд▓ рдХрд░рддреЗ рдереЗред
рдЪрд┐рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП php рд╕реНрдХреНрд░рд┐рдкреНрдЯ:#! / usr / рд╕реНрдерд╛рдиреАрдп / рдмрд┐рди / php
<? php
$ рд╣реЛрд╕реНрдЯ = "рд▓реЛрдХрд▓рд╣реЛрд╕реНрдЯ: 3306";
$ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ = "рдЬрд┐рдпреЛ";
$ рдбреЗрдЯрд╛ = "рдЬрд┐рдпреЛ";
$ рдкрд╛рд╕ = "рдлрд┐рд░ рд╕реЗ рдереЛрдбрд╝рд╛ рд╕рд╛";
// рдЬрд╣рд╛рдВ рддрд╕реНрд╡реАрд░ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП
$ рдкреИрдЪ = "/ рдбреЗрдЯрд╛ / рд╡реЗрдм / geo.ip.png";
$ z = 0;
// рдЫрд╡рд┐ рдФрд░ рд░рдВрдЧ рдмрдирд╛рдПрдБ
$ img = imagecreatetruecolor (600, 400);
$ рд╕реНрдпрд╛рд╣реА = рдЗрдореЗрдЬрдХреЛрд▓рд░реЙрд▓реЗрдЯ ($ img, 0, 255, 0);
// рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
$ db = mysql_connect ($ рд╣реЛрд╕реНрдЯ, $ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, $ рдкрд╛рд╕) рдпрд╛ рдорд░ ("рдмреЛрд▓реНрдЯ MySQL;);
$ db_sel = mysql_select_db ($ рдбреЗрдЯрд╛, $ db) рдпрд╛ рдорд░рдирд╛ ("рдмреЛрд▓реНрдЯ рдмреАрдбреА =)";
$ sql = mysql_query ("Select * FROM` all`;") рдпрд╛ рдорд░ ("рдмреЛрд▓реНрдЯ рдЬрд╝рд╛рдкреНрд░реЛрд╕");
$ num_rows = mysql_num_rows ($ sql) рдпрд╛ рдорд░рдирд╛ ("рдмреЛрд▓реНрдЯ рдиреНрдпреВрдо рд╕реНрдЯреНрд░реЛрдХ");
$ vib = mysql_num_rows ($ sql) рдпрд╛ рдбрд╛рдИ ("рдмреЛрд▓реНрдЯ рд╕реНрдЯреНрд░реЙрдХреА");
рдХреЗ рд▓рд┐рдП ($ i = 1; $ i <= $ num_rows; $ i ++) {
$ tmp = mysql_fetch_array ($ sql);
$ y = $ tmp ['x'];
$ x = $ tmp ['y'];
// рд╡рд╛рдВрдЫрд┐рдд рд╕рдордиреНрд╡рдп рдХреЗ рд╕рд╛рде рдмрд┐рдВрджреБ рд░рдЦреЛ
imagesetpixel ($ img, 300 + $ x, 200- $ y, $ рдЗрдВрдХ);
}
mysql_close ($ db);
// рдЕрдВрдд рдореЗрдВ рдПрдХ рдирд┐рд╢рд╛рди рд▓рдЧрд╛рдПрдВ рдФрд░ рдлрд╛рдЗрд▓ рдХреЛ рд╕реЗрд╡ рдХрд░реЗрдВ
ImageString ($ img, 2, 10, 5, "рдЬрд┐рдпреЛ рдЖрдИрдкреА:" .рдбреЗрдЯ ("YM j H, i")ред "рдХреЛрд▓реНрд╡реЛ:"ред $ Num_rowsред, $ рдЗрдВрдХ);
рдЗрдореЗрдЬреЗрдЯреНрд░реВрдХреЛрд▓реЙрд░реНрдЯреЗрдкреНрд▓реЗрдЯ ($ img, true, 255);
imagepng ($ img, $ рдкреИрдЪ);
imagedestroy ($ img);
?>
рдкрд╛рд░реНрд╕рд░ рдХрд╛ рдкрд░рд┐рдгрд╛рдо:рдкреНрд░рддрд┐ рдлрд╝рд╛рдЗрд▓ рдХреБрд▓ 310072 рд▓рд╛рдЗрдиреЗрдВ
рдЕрджреНрд╡рд┐рддреАрдп рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ (рдЧреЛрд▓рд╛рдИ рдХреЗ рд╕рд╛рде) 8226, рдЬреЛ рдХреЗрд╡рд▓ 2.65% рд╣реИ
рдЯреЗрдмрд▓ рдХрд╛ рдЖрдХрд╛рд░ 384 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╣реИ :)
рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕рдордп:
рдбреЗрдЯрд╛рдмреЗрд╕ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдХреБрдЫ рдШрдВрдЯреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдЪрд┐рддреНрд░ рдХреЗ рдЧрдарди рдкрд░, рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдЧрд▓рд┐рдпрд╛рд░реЛрдВ рдореЗрдВред
рдкреА.рдПрд╕.
рд╡рд╛рдВрдЫрд┐рдд рдбреЗрд╕реНрдХрдЯреЙрдк рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд╛ рдЖрдХрд╛рд░ рдмрджрд▓рдиреЗ рдкрд░, рд╣рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡реЙрд▓рдкреЗрдкрд░ рдорд┐рд▓рддрд╛ рд╣реИред
pps рдиреЗ рдмрд╛рдж рдореЗрдВ 18000 рддрдХ 36000 рдХреА рдлрд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА (рдХреНрд░рдорд╢рдГ рджреЛ рджрд╢рдорд▓рд╡ рд╕реНрдерд╛рдиреЛрдВ рдкрд░), рд▓реЗрдХрд┐рди рдЬреАрдбреА рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ php рдиреЗ рдЗрд╕ рд╕рдВрдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдлрд╛рдбрд╝ рджрд┐рдпрд╛, рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпреЛрдВ рдФрд░ рдХреНрдпреЛрдВ рдХреЛрдИ рдЗрдЪреНрдЫрд╛ рдпрд╛ рд╢рдХреНрддрд┐ рдирд╣реАрдВ рдереАред