Veni_Vidi_Vici
Veni_Vidi_Vici

Reputation: 291

Why Tor cant access localhost pages

I have Tor running and a python script to get web pages:

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 9050)
socket.socket = socks.socksocket

print urllib2.urlopen(URL).read()

However, if the URL is

http://localhost/some_page.html

I get the following error:

raise Socks5Error(ord(resp[1]),_generalerrors[ord(resp[1])])
TypeError: __init__() takes exactly 2 arguments (3 given)

Can someone explain to me what exactly happens?

Thank you.

Upvotes: 11

Views: 7853

Answers (3)

Kishor Neupane
Kishor Neupane

Reputation: 128

The following could be a solution:

  1. Go to "about:config page on the Tor Browser.
  2. Search for "network.proxy.no_proxies_on" and then enter "localhost" or "127.0.0.1" in there.
  3. Save the settings.

Now, you're good to go. The page will be accessible from the Tor Browser without a single problem. If that's what you were trying to learn.

Upvotes: 0

Santo
Santo

Reputation: 69

You can use Tor proxy with php in localhost. Using cURL. Put your local IP on LAN proxy config "No proxy for:". Exammple 192.168.1.10. Then call your php as "http://192.168.1.10/your_script.php"

$proxy = '127.0.0.1:9150';
$ur = "http://anydomain.com";
$ch = curl_init();

curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

    curl_setopt($ch, CURLOPT_URL, $ur);

    $curl_scraped_page = curl_exec($ch);
    $error = curl_error($ch);

Upvotes: 1

Supreet Sethi
Supreet Sethi

Reputation: 1806

It is the way protocol is designed. When you send a request, it is transported to another machine on Internet with Socks5 envelope. So actual request is made from external server, thus accessing 127.0.0.1 is not possible.

Upvotes: 16

Related Questions