root DEBUG Using proxy: http://182.23.28.180:3128
RR Status 200
Proxied Request Took: 2.21629214287 sec => Status: <Response [200]>
Response: ip=86.19.251.144,182.23.28.180
Querying canihazmyip lately we get either one, or two comma separated values.
In the example above the first one is our real IP and the second one is the proxy.
In general HTTP proxy servers, upon receiving a request from a client/user, append a new field (X-Forwarded-For) in the HTTP header and this is how icanhazip knows if we are using a proxy or not! The X-Forwarded-For field has the client's IP address and by analyzing it a website can figure out the real IP address.
Of course, different proxy servers provide different levels of anonymity - that's why in some cases you we see only the proxy IP in the response! In that case, the proxies do not include such headers in their requests. More examples of such headers: https://github.com/major/icanhaz/blob/master/icanhaz.py
An interesting feature would be to categorize the proxy providers by the level of anonymity they provide!
Querying canihazmyip lately we get either one, or two comma separated values. In the example above the first one is our real IP and the second one is the proxy.
In general HTTP proxy servers, upon receiving a request from a client/user, append a new field (X-Forwarded-For) in the HTTP header and this is how icanhazip knows if we are using a proxy or not! The X-Forwarded-For field has the client's IP address and by analyzing it a website can figure out the real IP address.
Of course, different proxy servers provide different levels of anonymity - that's why in some cases you we see only the proxy IP in the response! In that case, the proxies do not include such headers in their requests. More examples of such headers: https://github.com/major/icanhaz/blob/master/icanhaz.py
An interesting feature would be to categorize the proxy providers by the level of anonymity they provide!