Python使用指定端口进行http请求的例子


Posted in Python onJuly 25, 2019

使用requests库

class SourcePortAdapter(HTTPAdapter):
 """"Transport adapter" that allows us to set the source port."""

 def __init__(self, port, *args, **kwargs):
  self.poolmanager = None
  self._source_port = port
  super().__init__(*args, **kwargs)

 def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs):
  self.poolmanager = PoolManager(
   num_pools=connections, maxsize=maxsize,
   block=block, source_address=('', self._source_port))

s = requests.Session()
s.mount('https://baidu.com', SourcePortAdapter(54321))
s.get('https://baidu.com')

我用wireshark测试发现是走的54321端口。

使用pycurl库

c = pycurl.Curl()
c.setopt(c.URL, 'https://curl.haxx.se/dev/')
c.setopt(c.LOCALPORT, 54321)
c.setopt(c.LOCALPORTRANGE, [52314,56321,5532])
c.perform()
c.close()

测试OK,可以直接在curl命令行中测试。

curl --local-port 12520 http://baidu.com

参考

https://stackoverflow.com/questions/47202790/python-requests-how-to-specify-port-for-outgoing-traffic?rq=1

以上这篇Python使用指定端口进行http请求的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中正则表达式的用法实例汇总
Aug 18 Python
python实现在sqlite动态创建表的方法
May 08 Python
Python实时获取cmd的输出
Dec 13 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Python随机数用法实例详解【基于random模块】
Apr 18 Python
python脚本实现验证码识别
Jun 07 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
pycharm远程linux开发和调试代码的方法
Jul 17 Python
python 生成图形验证码的方法示例
Nov 11 Python
Pandas DataFrame中的tuple元素遍历的实现
Oct 23 Python
Python中bisect的用法及示例详解
Jul 20 Python
详解numpy1.19.4与python3.9版本冲突解决
Dec 15 Python
django多对多表的创建,级联删除及手动创建第三张表
Jul 25 #Python
django 中QuerySet特性功能详解
Jul 25 #Python
对Python _取log的几种方式小结
Jul 25 #Python
django 中的聚合函数,分组函数,F 查询,Q查询
Jul 25 #Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 #Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 #Python
Python 3.8 新功能全解
Jul 25 #Python
You might like
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
2013/08/06 PHP
PHP针对字符串开头和结尾的判断方法
2016/07/11 PHP
laravel + vue实现的数据统计绘图(今天、7天、30天数据)
2018/07/31 PHP
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
web 页面分页打印的实现
2009/06/22 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
将两个div左右并列显示并实现点击标题切换内容
2013/10/22 Javascript
JavaScript实现控制打开文件另存为对话框的方法
2015/04/17 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS jQuery使用正则表达式去空字符的简单实现代码
2017/05/20 jQuery
解决vue2.0路由跳转未匹配相应用路由避免出现空白页面的问题
2018/08/24 Javascript
vue props传值失败 输出undefined的解决方法
2018/09/11 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
Python创建模块及模块导入的方法
2015/05/27 Python
python制作花瓣网美女图片爬虫
2015/10/28 Python
python 队列详解及实例代码
2016/10/18 Python
创建pycharm的自定义python模板方法
2018/05/23 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Pycharm 2020.1 版配置优化的详细教程
2020/08/07 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
python批量生成身份证号到Excel的两种方法实例
2021/01/14 Python
你正在寻找的CSS3 动画技术
2011/07/27 HTML / CSS
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
城市轨道交通工程职业规划书范文
2014/01/18 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
大学生党员个人对照检查材料范文
2014/09/25 职场文书
酒店前台接待岗位职责
2015/04/02 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
Python办公自动化PPT批量转换操作
2021/09/15 Python
利用JavaScript写一个简单计算器
2021/11/27 Javascript
Windows Server 2019 配置远程控制以及管理方法
2022/04/28 Servers