0
내 대학의 서버에서 실행할 스크립트를 작성하고 있습니다.
스크립트의 목적은 웹 사이트를 확인하고 HTTP 상태 코드와 IP 주소를 기록하는 것입니다. 이것은 일반적으로 잘 작동하지만 해결하는데 어려움이 있습니다.
대학 네트워크 외부의 로컬 컴퓨터에서 실행하면 모든 것이 작동합니다.
내에서 스크립트를 실행하면 특정 사이트가 해결되지 않습니다. 어떤 이유로 든 내 대학의 DNS 서버가 조회를 수행 할 수 없습니다. 나는 그 기계에 대한 통제권이 없으므로 나는 그 기계를 둘러싼 길을 찾고있다.Python 스크립트 용 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)