On 07/05/2013 04:00 AM, Νίκος Gr33k wrote:
Στις 5/7/2013 10:50 πμ, ο/η Dave Angel έγραψε:

The line started as:

 >      host = socket.gethostbyaddr( os.environ['REMOTE_ADDR'] )[0]

refactor that to:
        remadd = os.environ('REMOVE_ADDR')
        tuple3 = socket.gethostbyaddr(remadd)
        host = tuple3[0]

and see which one throws the exception.  Then once you have that,
examine the exact parameters that might be triggering the problem.  In
particular, figure out the exact types and values for remadd and tuple3.

        print(type(remadd) + " : " + repr(remadd))

I'am not sure how iam supposed to write this: i just tried this:


try:
     remadd = os.environ('REMOVE_ADDR')
     tuple3 = socket.gethostbyaddr(remadd)
     host = tuple3[0]
except:
     host = type(remadd) + " : " + repr(remadd)


but iam getting an internal server error.

I didnt print it as you said but its the same thing host var gets
printed later on.

Now, why would this give an internal server error?


I have no idea what causes an internal server error. It's up to you to get the output of the expression to some location you can examine. Easiest way is to run those 3 lines directly on the server, not in the cgi environment.

But if you don't have any debugging tools, then STOP right now and build some. Use logging, or redirect print, or do something that the server folks provide as debugging aids. But just blindly guessing is ludicrous. So also is throwing out clues by using a bare except.

Assigning that string to host makes no sense at all. And neither does putting it in the except clause. You want to get that string to YOUR eyes, not to the server who might get an internal server error.


--
DaveA

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to