ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 

  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА














     АРХИВ :: Apache-Talk
Apache-Talk mailing list archive (apache-talk@lists.lexa.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re[2]: [apache-talk] mod_geo и mod_realip




Вот так помогает:

./Configure  ...
 --permute-module=realip:END


Предварительно пропатчить mod_geo следующим образом:

----------------------------
*** mod_geo-1.3.0/mod_geo.c.orig        Wed Jul 23 16:25:39 2003
--- mod_geo-1.3.0/mod_geo.c     Wed Jul 23 16:29:15 2003
***************
*** 241,250 ****
        {
            patricia_node_t *node;
            prefix_t p;
            p.bitlen = 32;
            p.ref_count = 0;
            p.family = AF_INET;
!           p.add.sin.s_addr = r->connection->remote_addr.sin_addr.s_addr;
            node = patricia_search_best( serverconf->tree, &p);
            if(node)
                {
--- 241,253 ----
        {
            patricia_node_t *node;
            prefix_t p;
+           struct in_addr remote_ip;
            p.bitlen = 32;
            p.ref_count = 0;
            p.family = AF_INET;
!           if( inet_aton(r->connection->remote_ip,&remote_ip) == 0 )
!               return DECLINED;
!           p.add.sin.s_addr = remote_ip.s_addr;
            node = patricia_search_best( serverconf->tree, &p);
            if(node)
                {
----------------------------------

С уважением,
Сергей Герштейн 

--
заместитель генерального директора по развитию
телекоммуникационная компания Урал Релком
mailto:sg@ur.ru тел: (3432) 793111, 776469, факс 581956
http://www.ur.ru  http://www.e1.ru  http://www.uralweb.ru

**********************************************************

23 ноября 2003 г. в 22:51 Вы писали:

BI> Alex Tutubalin wrote:

>>>mod_geo пока не увенчалась успехом, замена
>>>p.add.sin.s_addr = r->connection->remote_addr.sin_addr.s_addr;
>>>на inet_aton(p.add.sin.s_addr , r->connection->remote_ip);
>> 
>> 
>> Однако 
>> int inet_aton(const char *cp, struct in_addr *pin);
>> 
>> То-есть у вас похоже перепутаны параметры. Еще inet_addr вполне подойдет :)
>> 
>> Alex
>> 
>> 

BI> Да, я посмотрел man, осознал все свои заблуждения и заменил на inet_addr
BI> не только в geo_postread но и geo_fixup (на всякий случай,
BI> у меня GEOActive Off)

BI> Но все равно не работает :(
BI> RealIP  postread
BI> Я прописал в ipranges.2002-01-10 сеть, где стоит кэш некими буквами ZZ
BI> и посмотрел через phpinfo, что выставляется сервером.

BI> Если обращаюсь прямо к серверу (из другой сети)
BI> _SERVER["REMOTE_ADDR"] мой
BI> _SERVER["IP_GEO"] RU

BI> через кэш:
BI> _SERVER["HTTP_X_REAL_IP"] мой
BI> _SERVER["REMOTE_ADDR"] мой
BI> _SERVER["IP_GEO"] ZZ

BI> а если на кэше AccelSetXRealIP погасить, то
BI> нету _SERVER["HTTP_X_REAL_IP"]
BI> _SERVER["REMOTE_ADDR"] кэш
BI> _SERVER["IP_GEO"] ZZ

BI> Наверное, geo работает раньше, чем realip и порядок перечисления модулей
BI> при компиляции не волнует. :(
BI> gcc -c  -I../../os/unix -I../../include   -funsigned-char 
BI> -DRUSSIAN_APACHE -DMOD_SSL=208116 -DEAPI -DUSE_EXPAT 
BI> -I../../lib/expat-lite -DNO_DL_NEEDED `../../apaci` mod_charset.c
BI> gcc -c  -I../../os/unix -I../../include   -funsigned-char 
BI> -DRUSSIAN_APACHE -DMOD_SSL=208116 -DEAPI -DUSE_EXPAT 
BI> -I../../lib/expat-lite -DNO_DL_NEEDED `../../apaci` mod_realip.c
BI> gcc -c  -I../../os/unix -I../../include   -funsigned-char 
BI> -DRUSSIAN_APACHE -DMOD_SSL=208116 -DEAPI -DUSE_EXPAT 
BI> -I../../lib/expat-lite -DNO_DL_NEEDED `../../apaci` mod_geo.c
BI> rm -f libextra.a
BI> ar cr libextra.a mod_charset.o mod_realip.o mod_geo.o

BI> BR










 




Copyright © Lexa Software, 1996-2009.