Difference between revisions of "Proxy basic.py"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) |
PeterHarding (talk | contribs) |
||
| Line 156: | Line 156: | ||
""" | """ | ||
</pre> | </pre> | ||
[[Category:Python]] | [[Category:Python]] | ||
[[Category: | [[Category:Python httplib]] | ||
[[Category:Examples]] | [[Category:Examples]] | ||
Latest revision as of 15:07, 1 August 2015
Script
$ cat proxy_basic.py
#!/usr/bin/env python
#
#
#
#-------------------------------------------------------------------------------
import sys
import base64
import httplib
import urllib2
#-------------------------------------------------------------------------------
def do():
proxy_support = urllib2.ProxyHandler({"http":"http://proxy:8080"})
http_support = urllib2.HTTPHandler()
opener = urllib2.build_opener(proxy_support, http_support)
urllib2.install_opener(opener)
connf = urllib2.urlopen('http://www.python.org/')
auth = "Basic " + base64.encodestring("xxx:xxx")
conn.putheader('Proxy-Authorization', auth)
conn.endheaders()
#errcode, errmsg, headers = conn.getresponse()
rc = conn.getresponse()
# print errcode
# print errmsg
# print headers
# f = conn.getfile()
# for line in f.readlines():
# print line
# rc = conn.getresponse()
print rc.__dict__
print rc.status, rc.reason
print rc.msg
data = rc.read()
# print data
conn.close()
#-------------------------------------------------------------------------------
def main(args):
do()
#-------------------------------------------------------------------------------
if __name__ == "__main__":
main(sys.argv[1:])
#-------------------------------------------------------------------------------
NTLM Needed!
cat proxy_get.py
#!/usr/bin/env python
#
#
#
#-------------------------------------------------------------------------------
import sys
import base64
import httplib
#-------------------------------------------------------------------------------
passwd = 'xxx'
#-------------------------------------------------------------------------------
def do():
conn = httplib.HTTPConnection('10.10.10.10', 8080)
conn.putrequest("GET", "http://www.google.com.au/")
conn.putheader('Accept', 'text/html')
conn.putheader('Accept', 'text/plain')
auth = "Basic " + base64.encodestring("name:%s" % passwd)
conn.putheader('Proxy-Authorization', auth)
conn.endheaders()
#errcode, errmsg, headers = conn.getresponse()
rc = conn.getresponse()
# print errcode
# print errmsg
# print headers
# f = conn.getfile()
# for line in f.readlines():
# print line
# rc = conn.getresponse()
print rc.__dict__
print rc.status, rc.reason
print rc.msg
data = rc.read()
# print data
conn.close()
#-------------------------------------------------------------------------------
def main(args):
do()
#-------------------------------------------------------------------------------
if __name__ == "__main__":
main(sys.argv[1:])
#-------------------------------------------------------------------------------
"""
$ ./proxy_get.py
{'fp': <socket._fileobject object at 0x7fedc09c>, 'status': 407, 'will_close': True, 'chunk_left': 'UNKNOWN', 'length': 2377, 'strict': 0, 'reason': 'Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied. )', 'version': 11, 'debuglevel': 0, 'msg': <httplib.HTTPMessage instance at 0x7ff4178c>, 'chunked': 0, '_method': 'GET'}
407 Proxy Authentication Required ( The ISA Server requires authorization to fulfill the request. Access to the Web Proxy service is denied. )
Via:1.1 PROXY
Proxy-Authenticate: NTLM
Proxy-Authenticate: Basic realm="PROXY.dmz.performiq.com.au"
Proxy-Authenticate: Kerberos
Proxy-Authenticate: Negotiate
Connection: close
Proxy-Connection: close
Pragma: no-cache
Cache-Control: no-cache
Content-Type: text/html
Content-Length: 2377
"""