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

yipeiwu_com7年前Python基础

使用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中的线程threading.Thread()使用详解

python中的线程threading.Thread()使用详解

1. 线程的概念: 线程,有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集合和堆栈...

Python与人工神经网络:使用神经网络识别手写图像介绍

Python与人工神经网络:使用神经网络识别手写图像介绍

人体的视觉系统是一个相当神奇的存在,对于下面的一串手写图像,可以毫不费力的识别出他们是504192,轻松到让人都忘记了其实这是一个复杂的工作。 实际上在我们的大脑的左脑和右脑的皮层都有...

python使用opencv实现马赛克效果示例

python使用opencv实现马赛克效果示例

本文实例讲述了python使用opencv实现马赛克效果。分享给大家供大家参考,具体如下: 最近要实现opencv视频打马赛克,在网上找了一下基本是C++的实现,好在原理一样,下面给出p...

python基础 range的用法解析

range基本用法: range:顾头不顾尾 range(10)--返回0-9的数字 ey: for i in range(10): print(i) result:0...

Python编程实现粒子群算法(PSO)详解

Python编程实现粒子群算法(PSO)详解

1 原理 粒子群算法是群智能一种,是基于对鸟群觅食行为的研究和模拟而来的。假设在鸟群觅食范围,只在一个地方有食物,所有鸟儿看不到食物(不知道食物的具体位置),但是能闻到食物的味道(能知道...