1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
import urllib2
from urlparse import urlparse, urlunparse
from ntlm import HTTPNtlmAuthHandler
import sys
import os
def main():
assert len( sys.argv ) == 3, "Usage %s <password> <url>" % sys.argv[0]
user = '%s\%s' % ( os.environ["USERDOMAIN"], os.environ["USERNAME"] )
password = sys.argv[1]
url = sys.argv[2]
# determine a base_uri for which the username and password can be used
parsed_url = urlparse(url)
base_uri = urlunparse((parsed_url[0],parsed_url[1],"","","",""))
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, base_uri, user, password)
# create the NTLM authentication handler
auth_NTLM = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
# other authentication handlers
auth_basic = urllib2.HTTPBasicAuthHandler(passman)
auth_digest = urllib2.HTTPDigestAuthHandler(passman)
# disable proxies (if you want to stay within the corporate network)
proxy_handler = urllib2.ProxyHandler({})
# create and install the opener
opener = urllib2.build_opener(proxy_handler, auth_NTLM, auth_digest, auth_basic)
urllib2.install_opener(opener)
# retrieve the result
response = urllib2.urlopen(url)
print(response.read())
|