千家信息网

linux中如何设置http代理ip

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要讲解了"linux中如何设置http代理ip",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux中如何设置http代理ip"吧!具体实
千家信息网最后更新 2026年11月02日linux中如何设置http代理ip

这篇文章主要讲解了"linux中如何设置http代理ip",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"linux中如何设置http代理ip"吧!

具体实现步骤如下:

1、安装pywin32、WMI支持。

具体下载地址Google一下,因为我的是32位python2.7系列,下载到的文件名分别为(pywin32-218.win32-py2.7.exe、WMI-1.4.7.win32.exe)

首先,我们查资料知道,IE浏览器的代理内容在注册表中『HKEYCURRENTUSER\Software\Microsoft\Windows\CurrentVersion\Internet Settings』这里存着,所以我们理论上只要修改这里相关的键值就可以切换IE代理。

2、修改注册表键值。

所以通过1得到,第一个函数就是修改注册表键值:

def changeIEProxy(keyName, keyValue):   pathInReg = 'Software\Microsoft\Windows\CurrentVersion\Internet Settings'   key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,pathInReg, 0, win32con.KEY_ALL_ACCESS)   win32api.RegSetValueEx(key, keyName, 0, win32con.REG_SZ, keyValue)   win32api.RegCloseKey(key)

因此段代码中用到了pywin32的的东西,所以在文件最开头需要做import win32api, win32con,引入相关的class

修改系统注册表的函数其实就这么几行…当然,因为我厂必须通过代理服务器上网,所以修改系统注册表的键值类型我只用到了REG_SZ这一种,实际其他情况还会有REG_DWORD啊等等类型。

3、需要一个配置文件,来保存各种场景的不同的配置信息。

然后咱需要一个配置文件,来保存各种场景『QA啊开发环境啊』的不同的配置信息,这时候我使用的配置文件为ini格式,用Python自带的ConfigParser就可以解析此种文件格式。

没有采用以往我最熟悉的XML或者json纯粹为了装x,xml和json总觉着是web上用的东西,ini看起来比较像一个.exe比较常用的配置文件格式。

也因为以前没用过ini格式的配置文件,这次权当又学会一种Python的玩法而已。

所以读取ini配置文件的代码为:

config = ConfigParser.ConfigParser() config.read('config.ini') if config.has_section(_section):   _ProxyServer = config.get(_section, 'ProxyServer')   _ProxyOverride = config.get(_section, 'ProxyOverride')

4、在文件最开头也import ConfigParser一下。

同样,因为用到了ConfigParser,需要在文件最开头也import ConfigParser一下。

细心的小伙伴会注意到这段代码中有一个_section的变量实际是没有定义的,而这个变量俺给它的含义是前边所写的『场景』,比如_section=='dev'表示开发环境,_section=='qa'表示QA环境,而咱们这次既然做的是一个类似exe的程序,所以_section需要在执行exe时候当作参数传进来。

这时候咱们就要用到Python的sys模块了,同样import sys,然后在程序中通过:

_section = sys.argv[1] if len(sys.argv) > 1 else 'dev'

这样的方式来获取『场景』这个参数,这一段代码就会变成:

_section = sys.argv[1] if len(sys.argv) > 1 else 'dev' config = ConfigParser.ConfigParser() config.read('config.ini') if config.has_section(_section):   _ProxyServer = config.get(_section, 'ProxyServer')   _ProxyOverride = config.get(_section, 'ProxyOverride')

既然已经读取到配置文件中的ProxyServer和ProxyOverride,写入到注册表理论上就能完成咱们的修改IE代理配置的大业了:

_section = sys.argv[1] if len(sys.argv) > 1 else 'dev' config = ConfigParser.ConfigParser() config.read('config.ini') if config.has_section(_section):   _ProxyServer = config.get(_section, 'ProxyServer')   _ProxyOverride = config.get(_section, 'ProxyOverride')   changeIEProxy('ProxyServer', _ProxyServer)   changeIEProxy('ProxyOverride', _ProxyOverride)

因为注册表内容虽然已经修改了,但实际上IE浏览器并没有生效,让IE浏览器生效需要关闭重新打开。

这时候就用到前边安装WMI,import wmi ctypes,然后:

def kill_ie():   c = wmi.WMI()   kernel32 = ctypes.windll.kernel32   for process in c.Win32_Process():     if process.Name=='iexplore.exe':       kernel32.TerminateProcess(kernel32.OpenProcess(1, 0, process.ProcessId), 0)

当然,这段代码是有一点点问题的,只关闭了IE没有重新打开

综上所述:

完整的代码为:

#coding=utf-8 import win32api, win32con, sys, ConfigParser, os, wmi, ctypes def kill_ie():   c = wmi.WMI()   kernel32 = ctypes.windll.kernel32   for process in c.Win32_Process():     if process.Name=='iexplore.exe':       kernel32.TerminateProcess(kernel32.OpenProcess(1, 0, process.ProcessId), 0) def changeIEProxy(keyName, keyValue):   pathInReg = 'Software\Microsoft\Windows\CurrentVersion\Internet Settings'   key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,pathInReg, 0, win32con.KEY_ALL_ACCESS)   win32api.RegSetValueEx(key, keyName, 0, win32con.REG_SZ, keyValue)   win32api.RegCloseKey(key) def check_config():   if not os.path.isfile('config.ini'):     cfg = ConfigParser.ConfigParser()     #开发环境     cfg.add_section('dev')     cfg.set('dev', 'ProxyServer', '192.168.0.6:3128')     cfg.set('dev', 'ProxyOverride', 'localhost;127.0.0.1')     #预上线     cfg.add_section('prepare')     cfg.set('prepare', 'ProxyServer', '192.168.0.6:3128')     cfg.set('prepare', 'ProxyOverride', 'localhost;127.0.0.1;')     #线上     cfg.add_section('online')     cfg.set('online', 'ProxyServer', '192.168.0.6:3128')     cfg.set('online', 'ProxyOverride', 'localhost;127.0.0.1')     #QA     cfg.add_section('qa')     cfg.set('qa', 'ProxyServer', '192.168.2.16:3128')     cfg.set('qa', 'ProxyOverride', 'localhost;127.0.0.1')     cfg.write(open('config.ini', 'a'))     return False   return True if __name__ == "__main__":   _section = sys.argv[1] if len(sys.argv) > 1 else 'dev'   if check_config():     kill_ie()     config = ConfigParser.ConfigParser()     config.read('config.ini')     if config.has_section(_section):       _ProxyServer = config.get(_section, 'ProxyServer')       _ProxyOverride = config.get(_section, 'ProxyOverride')       changeIEProxy('ProxyServer', _ProxyServer)       changeIEProxy('ProxyOverride', _ProxyOverride)     print 'done, open ie'   else:     print 'config.ini is created, modify config.ini and try again'

感谢各位的阅读,以上就是"linux中如何设置http代理ip"的内容了,经过本文的学习后,相信大家对linux中如何设置http代理ip这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

文件 配置 代理 注册表 代码 内容 场景 格式 环境 实际 开头 浏览器 学习 开发 浏览 不同 东西 信息 函数 参数 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技互联网产品 互联网科技有限公司图片 互联网金融 科技金融 中国 科技 互联网 壹账通互联网科技 善班互联网科技有限公司 互联网科技类展会 卫星互联网科技股票 济南华为互联网科技产业总部基地 厦门千工互联网科技有限公司 崇明区互联网教育科技售后服务 天津腾达互联网科技有限公司 玉溪新华互联网科技好不好 合肥互联网科技公司公章图片 上海钢联属于互联网科技股吗 电子商务与互联网科技的关系 互联网领先科技宣传片 图游互联网科技 互联网公司属于科技吗 宁波允成互联网科技有限公司 互联网科技工作委员会毛军 互联网科技社 互联网金融与金融科技 科技服务与互联网 四川狮子座互联网科技 中化能源互联网科技招聘 世界互联网科技公司市值排名 互联网科技与大数据专业 开一家科技互联网公司需要多少钱 中国互联网公司的科技投入
0