python urllib2 代理无效分析-NTLM
2009-07-16 18:27
357 查看
查了许久用urllib2通过代理访问网络的贴子,也写了测试代码,但是一直failed.Error Code: 407 Proxy Authentication Required. The ISA Server requires authorization to fulfill the request. Access to the Web Proxy filter is denied. (12209)
最后打算放弃用变通的方法现实现.
用curl库,网上找了下有对应python的接口----(pycurl)
马上down下,安装测试
测试code:
#coding=utf-8
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://www.ifeng.com')
import StringIO
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.PROXY, 'http://10.10.10.10:8080')
c.setopt(pycurl.PROXYUSERPWD, 'username:password')
c.perform()
print b.getvalue()
得到的结果还是:Error Code: 407 Proxy Authentication Required.
突然想起公司的OA都要加入域用代理才能上网。
又google下,搜到以下东东:
NTLM 身份验证
在网络环境中,NTLM (NT LAN Manager)用作身份验证协议以处理两台计算机(其中至少有一台计算机运行 Windows NT 4.0 或更早版本)之间的事务。具有此配置的网络称为“混合模式”,这是 Windows Server 2003 家族中的默认设置。
例如,以下配置将使用 NTLM 作为身份验证机制:
Windows 2000 或 Windows XP Professional 客户端向 Windows NT 4.0 的域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows 2000 或 Windows Server 2003 域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows NT 4.0 域控制器验证身份。
Windows NT 4.0 域中的用户向 Windows 2000 或运行 Windows Server 2003 家族的域验证身份。
运行向任何域控制器验证身份的 Windows 95、Windows 98 或 Windows Millennium Edition 的客户端。
另外,NTLM 是为没有加入到域中的计算机(如独立服务器和工作组)提供的身份验证协议。
分析后加上:c.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_NTLM)。功能OK。真是曲折啊。
不过还有其它好多认证方式,以后用代理不行,可以换个方向用其它认证试试。
有空用这个东东在linux下试试:
使用ntlmaps (http://sourceforge.net/projects/ntlmaps/)穿过 MSPROXY(ISA) ,Linux 上网不用愁(参考文章:http://www.chinaunix.net/jh/4/227822.html)
最后打算放弃用变通的方法现实现.
用curl库,网上找了下有对应python的接口----(pycurl)
马上down下,安装测试
测试code:
#coding=utf-8
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://www.ifeng.com')
import StringIO
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.setopt(pycurl.MAXREDIRS, 5)
c.setopt(pycurl.PROXY, 'http://10.10.10.10:8080')
c.setopt(pycurl.PROXYUSERPWD, 'username:password')
c.perform()
print b.getvalue()
得到的结果还是:Error Code: 407 Proxy Authentication Required.
突然想起公司的OA都要加入域用代理才能上网。
又google下,搜到以下东东:
NTLM 身份验证
在网络环境中,NTLM (NT LAN Manager)用作身份验证协议以处理两台计算机(其中至少有一台计算机运行 Windows NT 4.0 或更早版本)之间的事务。具有此配置的网络称为“混合模式”,这是 Windows Server 2003 家族中的默认设置。
例如,以下配置将使用 NTLM 作为身份验证机制:
Windows 2000 或 Windows XP Professional 客户端向 Windows NT 4.0 的域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows 2000 或 Windows Server 2003 域控制器验证身份。
Windows NT 4.0 Workstation 客户端向 Windows NT 4.0 域控制器验证身份。
Windows NT 4.0 域中的用户向 Windows 2000 或运行 Windows Server 2003 家族的域验证身份。
运行向任何域控制器验证身份的 Windows 95、Windows 98 或 Windows Millennium Edition 的客户端。
另外,NTLM 是为没有加入到域中的计算机(如独立服务器和工作组)提供的身份验证协议。
分析后加上:c.setopt(pycurl.PROXYAUTH, pycurl.HTTPAUTH_NTLM)。功能OK。真是曲折啊。
不过还有其它好多认证方式,以后用代理不行,可以换个方向用其它认证试试。
有空用这个东东在linux下试试:
使用ntlmaps (http://sourceforge.net/projects/ntlmaps/)穿过 MSPROXY(ISA) ,Linux 上网不用愁(参考文章:http://www.chinaunix.net/jh/4/227822.html)
相关文章推荐
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- Python爬虫(urllib2+bs4)+分析找出谁是水贴王(1)--数据收集
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- Python基于代理IP的挖掘与分析
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- python3.6之urllib模块代理实现
- Python之美[从菜鸟到高手]--urllib源码分析
- Python爬虫(urllib2+bs4)+分析找出谁是水贴王(2)--数据分析
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- python urllib urlopen()对象方法/代理的补充说明
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- Spring源码分析--@Autowired注入的不是代理对象,导致事务回滚失败(@Transactional无效)
- [Python爬虫] 使用urllib2库检测代理ip是否可用,并使用代理提交GET、POST请求
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- python urllib2 设置代理 自定义header
- python urllib2 使用代理
- [python]通过urllib2设置代理访问网址
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理)
- python爬虫学习(一)通过urllib2模块获取html,设置用户代理