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
|