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实现12306登录并保存cookie的方法示例

经过倒腾12306的登录,还是实现了,请求头很重要...各位感兴趣的可以继续写下去..... import sys import time import requests from...

Python通过future处理并发问题

Python通过future处理并发问题

future初识 通过下面脚本来对future进行一个初步了解: 例子1:普通通过循环的方式 import os import time import sys import re...

Python求算数平方根和约数的方法汇总

一、求算术平方根 a= x=int(raw_input('Enter a number:')) if x >= : while a*a < x: a = a + i...

Python利用字典破解WIFI密码的方法

最近看到网上的一些作品,然后进行一些完善。只是用于学习,不要去干坏事哦。程序来源于网,我只是做了一些优化。当然这种方法破解还是有点慢哦。我用的python 3.6.5 既然要破解wifi...

浅析Python 读取图像文件的性能对比

浅析Python 读取图像文件的性能对比

使用 Python 读取一个保存在本地硬盘上的视频文件,视频文件的编码方式是使用的原始的 RGBA 格式写入的,即无压缩的原始视频文件。最开始直接使用 Python 对读取到的文件数据进...