首页
python
Win桌面应用自动化pywinauto
pywinauto遍历展示程序的所有菜单项
Python3使用串口
Python字符串处理
Python3实现配置文件差异对比(键值对key=value的形式)
正则
正则匹配两个字符之间的字符串
正则提取markdown中图片链接
正则表达式基本知识
字符串-正则实例
Python生成8位随机字符串的一些方法
python3批量ping检测
python3检测一批主机ip的tcp端口
Python3--DNS
3D人体骨架检测(mediapipe)
Python-网络
检测到win电脑断网就发出告警声音
Python编写的DNS服务可靠性测试程序
Python编写的TCP/UDP端口探测程序
Python抓包-Pyshark
并发扫描TCP、UDP端口
Python-DHCP
端口的问题以及绑定端口(Python)
VSCode编辑器
python远程开机工具
Pyhton3--Win注册表
开源IT运维项目
python知识点
Python开源运维项目集合
python3备份交换机配置
Python3使用snmp获取H3C交换机arp表
Python检测tcp端口状态并发送到企微群
Python3使用smtp发邮件
Python3使用smtp发邮件(带附件)
Python3拉取微软AD域所有用户信息
Python3使用微软AD域账号认证
自动更新公网域名的解析(阿里云)
每日定时推送Excel中排班表信息到企微群
Django
Django模板标签
Django在发送POST请求时返回403错误
Django-mysql数据库条件查询
uwsgi 配置 python virtualenv 虚拟环境目录 ( ini 配置)
常用收藏
python3数据类型转换
python处理文本
txt每行一个字符串_用英文逗号连接
txt_匹配并拆分出需要字符串
python获取日期时间
python执行linux命令的三种方式
python使用ssh连接到linux服务器执行命令
本文档由 内网文摘 发布,转载请注明出处
-
+
首页
端口的问题以及绑定端口(Python)
### 【python2】使用固定源端口发送http请求 [1](https://blog.csdn.net/m0_38116154/article/details/106312763 "1") [【附件】端口的问题以及绑定端口(Python).mhtml](/media/attachment/2022/07/端口的问题以及绑定端口Python.mhtml) [2](https://blog.csdn.net/enlangs/article/details/81778405?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_ecpm_v1~rank_v31_ecpm-5-81778405-null-null.pc_agg_new_rank&utm_term=python%E4%B8%AD%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E7%AB%AF%E5%8F%A3get%E8%AF%B7%E6%B1%82&spm=1000.2123.3001.4430 "1") [3](https://blog.csdn.net/dmc436/article/details/115395003 "【python2】使用固定源端口发送http请求") 背景需求:相同五元组信息的TCP会话 代码: ```python import requests from requests.adapters import HTTPAdapter from requests.adapters import DEFAULT_POOLBLOCK from urllib3 import PoolManager ###################### # python 2.x # ###################### 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 HTTPAdapter.__init__(self, *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() url = "http://172.168.0.1:8080/index" s.mount(url, SourcePortAdapter(10001)) web = s.get(url, headers={'Connection':'close'}) # Connection:close 解决Failed to establish a new connection 问题 # web.encoding = 'utf-8' print(web.status_code) #查看返回码 print(web.text) #查看网页内容 s.close() ``` 参考来源:https://stackoverflow.com/questions/47202790/python-requests-how-to-specify-port-for-outgoing-traffic?rq=1 ### Python使用指定端口进行http请求 #### 使用requests库 ```python 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库 ```python 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命令行中测试。 ```python curl --local-port 12520 http://baidu.com ```
local
2022年7月26日 19:42
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 LocalNetwork
LocalNetwork
是由mrdoc开源
LocalNetwork.cn
修改的在线文档系统,作为个人和小型团队的云笔记、文档和知识库管理工具。
如果此文档给你或你的团队带来了帮助,欢迎支持作者持续投入精力更新和维护!内网文摘 & LocalNetwork
>>>主页
logo
logo
下载Markdown文件
分享
链接
类型
密码
更新密码