Python Requests, How To Bind To Different Source Ip For Each Request?
I'm trying to learn some python, and i'm having issues with the logic in what I want to test. Currently my code is written in a way that binding to source_address doesn't change wh
Solution 1:
For each request, there is no elegant solution, but you'll need to use a requests Session object and mount a new transport adapter for each request.
You can find example code for the transport adapter in this issue comment, or you can use the adapter included in the requests-toolbelt
package, like so
import requests
from requests_toolbelt.adapters import source
responses = []
s = requests.Session()
for source_ip, url in list_of_sources_and_urls:
new_source = source.SourceAddressAdapter(source_ip)
s.mount('http://', new_source)
s.mount('https://', new_source)
responses.append(s.get(url))
That assumes that list_of_sources_and_urls
looks like
[('127.0.0.1', 'https://google.com'),
('255.255.254.0', 'https://yahoo.com'),
# ...
]
Post a Comment for "Python Requests, How To Bind To Different Source Ip For Each Request?"