[mod_python] weird request.connection.remote_ip value

David Harvey dmharvey at math.harvard.edu
Sat Jul 8 22:48:10 EDT 2006

On Jul 8, 2006, at 10:38 PM, Graham Dumpleton wrote:

> On 09/07/2006, at 12:13 PM, David Harvey wrote:
>> I'm running mod_python 3.2.8 on Mac OS 10.4.6, python 2.4.3,  
>> apache 2.2.2, on my desktop machine.
>> I've got apache set up to load this script:
>> ========================= begin
>> from mod_python import apache
>> def handler(request):
>>     request.write(request.connection.remote_ip)
>>     return apache.OK
>> ========================= end
>> When I browse to "", the script prints out  
>> "" as expected.
>> If I connect from a local network, e.g. to ""  
>> it prints out "" (the address of the other machine) as  
>> expected.
>> But when I browse to "http://localhost/" from this machine, it  
>> prints "::1".
>> What does "::1" mean? Why isn't it giving me an IP address?  
>> Shouldn't I be getting "" as above? How can I guarantee  
>> to get an IP address?
> This field is populated by apr_sockaddr_ip_get() in Apache Runtime  
> library. The field
> can be populated with either IPv4 or IPv6 addresses. On a Mac, when  
> you use the
> string "localhost" it is as far as I know actually using an IPv6  
> connection to Apache and
> "::1" is what the Mac is using to identify that IPv6 client.
> What do you want the remote IP address for? Depending on what you  
> want to do,
> there may be better ways of doing it.
> Graham

Basically I want to use it as a temporary username for anonymous  
visitors who haven't registered for an account. Kind of like how  
wikipedia does. I was just a bit concerned when I saw "::1", it made  
me feel that using remote_ip is not a particularly reliable way to  
get the request IP address. Do you have any other suggestions?


More information about the Mod_python mailing list