我正在编写一个将从我大学的服务器运行的脚本
该脚本的目的是检查网站并记录他们的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)