为Python脚本更改DNS服务器
我正在写一个脚本,这个脚本会在我大学的服务器上运行。
这个脚本的目的是检查一些网站,并记录它们的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)