How To Do Urlopen Over Ipv4 By Default
What is the way to do urlopen in python such that even if the underlying machine has ipv6 networking enabled, the request is sent via ipv4 instead of ipv6?
Solution 1:
I had a look into the source code. Unfortunately, urllib.urlopen()
seems to use httplib.HTTP()
, which doesn't even allow setting a source address.
urllib2.urlopen()
uses httplib.HTTPConnection()
which you could inherit from and create a class which by default sets a source address '0.0.0.0'
instead of ''
. Then you could somehow inject that new overridden class into the urllib2
stuff by creating a "new" HTTPHandler()
(look how it's done in urllib2.py
) and a new opener which you build_opener()
and/or install_opener()
.
Sorry for not being very exact, but I never have done such a thing and don't know exactly how that works.
Post a Comment for "How To Do Urlopen Over Ipv4 By Default"