Difference between revisions of "Proxy basic.py"
Jump to navigation
Jump to search
PeterHarding (talk | contribs) (Created page with '=Script= <pre> $ cat proxy_basic.py #!/usr/bin/env python # # # #------------------------------------------------------------------------------- import sys import base64 impor...') |
PeterHarding (talk | contribs) |
||
Line 70: | Line 70: | ||
</pre> | </pre> | ||
=NTLM Needed!= | |||
<pre> | |||
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 | |||
""" | |||
</pre> | |||
[[Category:Python]] | [[Category:Python]] | ||
[[Category:. httplib]] | [[Category:. httplib]] | ||
[[Category:Examples]] | [[Category:Examples]] |
Revision as of 17:35, 29 April 2009
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 """