gpt4 book ai didi

python - 为 Python 脚本更改 DNS 服务器

转载 作者:行者123 更新时间:2023-12-05 07:58:38 25 4
gpt4 key购买 nike

我正在编写一个将从我大学的服务器运行的脚本。
该脚本的目的是检查网站并记录其 HTTP 状态代码和 IP 地址。这通常工作正常,但我遇到了一个我很难解决的问题:
当从大学网络外的本地计算机运行时,一切正常。
当我从网络内部 运行脚本时,没有解析一个特定站点。由于某种原因,我大学的 DNS 服务器无法进行查找。我无法控制那台机器,所以我正在寻找绕过它的方法。

当像下面这样写时,是否可以更改脚本使用的 DNS 服务器?如果不是,我应该怎么做?

相关代码:

import requests
import httplib
import socket

def getresponse(self,*args,**kwargs):
response = self._old_getresponse(*args,**kwargs)
if self.sock:
response.peer = self.sock.getpeername()
else:
response.peer = None
return response


httplib.HTTPConnection._old_getresponse = httplib.HTTPConnection.getresponse
httplib.HTTPConnection.getresponse = getresponse

def check_peer(resp):
orig_resp = resp.raw._original_response
if hasattr(orig_resp,'peer'):
return getattr(orig_resp,'peer')

r = requests.get("http://www.stackoverflow.com")
try:
ip = check_peer(r)
except TypeError:
ip = socket.gethostbyname_ex(site)

最佳答案

Python 'requests' library - define specific DNS?说这是可能的,尽管修补发生在 urllib 级别而不是请求级别。

关于python - 为 Python 脚本更改 DNS 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24065011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com