python pycurl验证basic和digest认证的方法

简介

pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快。

本文使用的是pycurl 7.43.0.1版本。

Apache下配置Basic认证

生成basic密码文件

htpasswd -bc passwd.basic test 123456

开启mod_auth_basic

LoadModule auth_basic_module modules/mod_auth_basic.so

配置到具体目录

<Directory "D:/test/basic">
  AuthName "Basic Auth Dir"
  AuthType Basic
  AuthUserFile conf/passwd.basic
  require valid-user
</Directory>

重启Apache

Apache下配置Digest认证

生成Digest密码文件

htdigest -c passwd.digest "Digest Encrypt" test

开启mod_auth_digest

LoadModule auth_digest_module modules/mod_auth_digest.so

配置到具体目录

<Directory "D:/test/digest">
  AuthType Digest
  AuthName "Digest Encrypt" # 要与密码的域一致
  AuthDigestProvider file
  AuthUserFile conf/passwd.digest
  require valid-user
</Directory>

重启Apache

验证Basic认证

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://test/basic/')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_BASIC)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()

验证Digest认证

# -*- coding: utf-8 -*-
import pycurl
try:
  from io import BytesIO
except ImportError:
  from StringIO import StringIO as BytesIO
buffer = BytesIO()
c = pycurl.Curl()
c.setopt(c.URL, 'http://test/digest/')
c.setopt(c.WRITEDATA, buffer)
c.setopt(c.HTTPAUTH, c.HTTPAUTH_DIGEST)
c.setopt(c.USERNAME, 'test')
c.setopt(c.PASSWORD, '123456')
c.perform()
print('Status: %d' % c.getinfo(c.RESPONSE_CODE))
print(buffer.getvalue())
c.close()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Python 编码Basic Auth使用方法简单实例
(0)

相关推荐

  • Python 编码Basic Auth使用方法简单实例

    本片博文主要介绍在Python3 环境下把用户名密码编码成字符串. 代码如下: import base64 def get_basic_auth_str(username, password): temp_str = username + ':' + password # 转成bytes string bytesString = temp_str.encode(encoding="utf-8") # base64 编码 encodestr = base64.b64encode(byte

  • python pycurl验证basic和digest认证的方法

    简介 pycurl类似于Python的urllib,但是pycurl是对libcurl的封装,速度更快. 本文使用的是pycurl 7.43.0.1版本. Apache下配置Basic认证 生成basic密码文件 htpasswd -bc passwd.basic test 123456 开启mod_auth_basic LoadModule auth_basic_module modules/mod_auth_basic.so 配置到具体目录 <Directory "D:/test/ba

  • Python 快速验证代理IP是否有效的方法实现

    有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个代理是无效的. 代码如下: import requests import random import time http_ip = [ '118.163.13.200:8080', '222.223.182.66:8000', '51.158.186.242:8811', '171.37.79.12

  • Python实现微信自动好友验证,自动回复,发送群聊链接方法

    引言: 一开始二维码加群,但是呢,这个东西隔一段时间会过期,我需要 每隔一段时间去更新二维码,然后当群人数超过100人了,只能邀请进群, 这个时候就需要别人添加我为好友,然后我通过,打开交流群,添加成员, 然后滚列表,一个个翻,找到那个人,然而我通讯录几百个人...后来我学会 了用标签,虽然可以过滤一部分人,但是还是要翻:还有一个问题就是, 加我的人时间的随机性,早上,下午,或者晚上,甚至还有深夜3,4点 加我的,最尴尬的是,刚拉完一个人,又有一个人加我,我又得拉一次... 还有一点就是不想陌生

  • Nginx配置Basic Auth登录认证的实现方法

    有时候我们通过nginx搭建了一台文件服务器, 一般来讲是公开的, 但我们又希望该服务器不让他人看到, 有人可能会搭建一个登录系统, 但是太麻烦, 也没太大必要, 比较简单的做法是配置Basic Auth登录认证 1. 确定你安装了httpd-tools yum install httpd-tools -y 2. 创建授权用户和密码 htpasswd -c -d /usr/local/openresty/nginx/conf/pass_file magina 这个配置文件存放路径可以随意指定,

  • Python中免验证跳转到内容页的实例代码

    相信很多人在浏览网页时,经常会碰到需要输入验证码才可以继续浏览的情况吧,遇到这种问题,大多数人只能进行繁琐的注册验证,今天小编教大家只要使用python就可以免验证方法. 以经常用到的解答网站--上学吧为例,在网站里点击答案页面,会显示验证后才可以查看提示,下面就使用python实现跳过验证码. 我们需要通过python构造随机的 X-Forwarded-For 信息来绕过 ASP 网站的 IP 检测,可以实现对输入的网址正确性进行检查.对验证码核验不通过时的处理等等. python免验证跳转页

  • Python实现"验证回文串"的几种方法

    一.LeetCode--125.验证回文串 1.问题描述 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 2.示例 示例 1: 输入: "A man, a plan, a canal: Panama" 输出: True 示例 1: 输入: "race a car" 输出: False 示例 3: 输入: "!!!" 输出: True 二.解题分析 在排除空格及特殊

  • Python Pycurl的属性与方法案例详解

    Pycurl包是一个libcurl的Python接口,由C语言编写的,功能强大,速度快.由于pycurl的属性和方法太多了,写这篇博文记录一下pycurl的属性和方法. 正常安装 pip install pycurl 如果出现问题,可以按照系统版本搜索安装方法,比如centos7.1 安装pycurl 通用请求方法 import pycurl,urllib from io import BytesIO url = 'http://www.baidu.com' headers = [ "User-

  • Python 批量验证和添加手机号码为企业微信联系人

    目录 需求 源码 运行 需求 批量验证和添加手机号码为企业微信账号的联系人 源码 import tkinter as tk import pyautogui as pg import tkinter.messagebox as msgbox def setpos(): global x,y try: x,y = eval(tEntry.get()) except: pass pg.click(x-150,y) pg.typewrite('1') pg.moveTo(x,y,duration=0.

  • python 密码验证(滑块验证)

    目录 题目描述: 解题思路/算法分析/问题及解决 实验代码 题目描述: (1)模拟登陆界面,判别用户名和密码,给出合适的提示,如果超过三次,锁定输入.用代替密码:或者最新输入显示,前面的变成:安全性措施.(2)同时添加如下图的加强验证(京东).(3)在触动滚动条时再出现空缺位置. 拓展: 增加注册页面,可供用户注册新用户 增加数字验证码区别人机 解题思路/算法分析/问题及解决 滑块验证就是将滑块的移动和图片小块的移动相绑定,在滑块松开时触发相对应的检查函数,为了有一定的容错率,设定滑块的位置与设

  • Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法

    WinRM 即 Windows Remote Management,是微软对于WS-Management远程管理协议的实现. 一.受控端配置 WinRM 服务 方式一:cmd 命令行(管理员) 启用 WinRM 远程服务: winrm quickconfig 查看 WinRM 服务监听状态: winrm e winrm/config/listener C:\Windows\system32>winrm e winrm/config/listener Listener [Source="GP

随机推荐