Pessoal,

Tem um jeito mais simples de se fazer isso. O REQUEST tem um metodo
'getClientAddr' que funciona tanto se o Zope for acessado diretamente
quanto se for acessado atraves de um proxy (Apache, Squid).

2008/11/7 José Henrique <[EMAIL PROTECTED]>:
> 2008/11/6 jgbalb <[EMAIL PROTECTED]>:
>
>> Descobri que para obter todos os campos do cabecalho HTTP devo
>> utilizar o seguinte:
>>
>> camposHttp = context.REQUEST.items()
>>
>> O que me retorna uma lista em formato dicionario de todos os
>> campos (que estejam setados) do cabeçalho HTTP.
>>
>> Para obter um campo especifico uso:
>>
>> campoHttp = context.REQUEST.get_header('<nome_do_campo>')
>>
>> Por exemplo: context.REQUEST.get_header('REMOTE_ADDR'), que é
>> o correto para obter o IP. Não sei o que retorna
>> HTTP_X_FORWARDED_FOR, mas em minha maquina retornou 'None' (vazio).
>>
>> DICA: descobri tudo isso clicando 'header' na pesquisa do HELP do
>> Zope; e depois clicando em REQUEST que aparecia à esquerda.
>>
>> Grato pela ajuda.
>>
> João
>
> Dá uma olhada no traceback de algum erro na sua instância. Você vai
> ver que depois da descrição do erro é exibido o conteúdo do objeto
> REQUEST. A última seção (environ) traz as informações que você quer.
> para acessá-las basta utilizar context.REQUEST.nome_da_variável
> (context.REQUEST.REMOTE_ADDR, por exemplo).
>
> Zénrique.
> 



-- 
Sidnei da Silva
Enfold Systems
http://enfoldsystems.com
Fax +1 832 201 8856
Office +1 713 942 2377 Ext 214
Skype zopedc

Responder a