Skip to main content

CircleCI PyPI version

State

In active development. It's in experiment state now

Python AutoProxy

pyautoproxy helps to configure your proxy for developemnt purpose. When you work with some proxy and have to validate traffic quite often it really annoying to reconfigure a device to use proxy when needed and when not to.

To make life a bit easier we can use Proxy Auto-Config. But problem with it is that most of http clients expect it to be on some server and response from that server should have proper headers, hence we can't use just a file on local machine. Also Different devices require different proxy config time by time.

This app can solve the issue above. It's simple http server which now start serve on specified port and return correct Auto-Config based on query parameters.

Usge

Install

pip install pyautoproxy

Run the server:

pyautoproxy --port 8081

For exanple, request to http://localhost:8081?host=localhost&port=8080 will return

function FindProxyForURL(url, host)
{
    return "PROXY localhost:8080; DIRECT";
}

Which means that when proxy on localhost:8080 is available a client will try use it, but when you turn it off it will bypass proxy and use direct connections.

iOS simulator

iOS simulator requires configure your Mac OS to use the proxy, which really annoying. But when you start pyautoproxy as

pyautoproxy -s

It will filter all requests except requests from iOS, hence all you machine traffic won't go through the proxy.

Configure for Android Emulator

From emulator you can always refer to host machine with ip 10.0.2.2. Usual link for Auto-Proxy config on Android will looks like http://10.0.2.2:8081/?host=10.0.2.2&port=8080

Configure proxy type

By default, proxy corresponding to the protocol of the original request, be it http, https, or ftp, is used.

If you want to change it, just add proxy parameter to the Auto-Config URL e.g.:

http://localhost:8081/?host=localhost&port=8080&proxy=SOCKS5

// Will return

function FindProxyForURL(url, host)
{
    return "SOCKS5 localhost:8080; DIRECT";
}

Release files for pyautoproxy 0.0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyautoproxy 0.0.15
File Size Uploaded
pyautoproxy-0.0.15.tar.gz 3.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyautoproxy 0.0.15
File Interpreter ABI Platform
pyautoproxy-0.0.15-py3-none-any.whl Python 3 none any Details

Total release size: 8.1 kB

Release files / pyautoproxy-0.0.15.tar.gz

Download URL pyautoproxy-0.0.15.tar.gz
Size 3.9 kB
Tags Source
SHA-256 checksum
How to use checksums
080fe96ce52706691e2b701485fc007999cc958210746e874615c8905f690b79
BLAKE2b-256 checksum
How to use checksums
857896a2ee51cabcf3696564afe99bbfb4cf4dda44ed62332b4b8ff95363477d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.7.0 requests/2.25.1 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.6.12

Release files / pyautoproxy-0.0.15-py3-none-any.whl

Download URL pyautoproxy-0.0.15-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
49222e59019e9b9515717da253c11022ed22e6eac3ed1bbda15f09bcf19f0dd2
BLAKE2b-256 checksum
How to use checksums
0bfa078709a3bfa603941895fae2bee773f5ffc2b8a5f5d68e7417079e0b7a2e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.7.0 requests/2.25.1 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.6.12

Release history Release notifications | RSS feed

This release

0.0.15 This release

2 release files

0.0.14

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page