Python 如何告诉请求模块不要进行DNS查找?

Python 如何告诉请求模块不要进行DNS查找?,python,dns,python-requests,Python,Dns,Python Requests,我的想法是将命令行上的IP地址列表提供给下面的代码,以检查HTTP方法。问题是Python抱怨无法将IP地址解析为主机名,并出现以下错误: requests.exceptions.ConnectionError:('Connection aborted',GAIRROR(8,'nodename或servname已提供,或未知)) 如何关闭DNS IP-->主机名解析 #/usr/bin/python #用法:./name-of-this-script.py IP列表 导入系统 导入请求 requ

我的想法是将命令行上的IP地址列表提供给下面的代码,以检查HTTP方法。问题是Python抱怨无法将IP地址解析为主机名,并出现以下错误:
requests.exceptions.ConnectionError:('Connection aborted',GAIRROR(8,'nodename或servname已提供,或未知))

如何关闭DNS IP-->主机名解析

#/usr/bin/python
#用法:./name-of-this-script.py IP列表
导入系统
导入请求
requests.packages.urllib3.disable_warnings()
##变数
f=打开(sys.argv[1],'r')
动词=['GET'、'HEAD'、'POST'、'PUT'、'DELETE'、'OPTIONS'、'TRACE'、'PROPFIND'、'CONNECT'、'TEST'、'LOCK'、'MKCOL'、'ACL'、'BASELINE-CONTROL'、'BIND'、'CHECKIN'、'CHECKOUT'、'COPY'、'LABEL'、'LINK'、'MERGE'、'MKACTIVITY'、'MKCALENDAR'、'MKCOL'、'MKDIRECTREF'、'MKWORKPSACE'、'MOVE'、'ORDERPATCH'、'ORDERPATCH'、'PATCH'、'PATCH'、'PROPATCH'、'REBIND'、'REPORT'、'SEARCH'、'SEARCH'、'SEARCH'、'UNLINK'、'UNLINK'、',“UPATEDDIRECTREF”、“版本控制”、“LongfonyHttpMethod”]
打印“-------------------------------------”
打印“允许的HTTP方法,如下200 OK所示。”
打印“”
控制Apache上允许使用哪些HTTP方法
咨询:
https://httpd.apache.org/docs/trunk/mod/mod_allowmethods.html
"""
打印“-------------------------------------”
对于f中的行:
对于动词中的动词:
打印行
#req=requests.request(动词,sys.argv[1],verify=False)
主机='https://'+行
req=请求。请求(动词、主机、验证=False)
打印谓词,请求状态\代码,请求原因
如果req.text中的动词=='TRACE'和'TRACE/HTTP/1.1':
打印“发现可能的跨站点跟踪漏洞!”

使用像
requests这样的高级库来处理这种低级HTTP请求对我来说似乎是一种过激的行为

如果您想使用Python 3,我建议您使用
httplib
(或
http.client
):


谢谢,但这并不能解决我的问题,它会返回我不想要的完整HTML标记。有没有办法使用Requests.adapters.HTTPAdapter在请求中禁用gethostbyname
import httplib
import ssl

# Since the IP addresses will likely not match the SSL cert hostnames
ssl_context = ssl.create_default_context()
ssl_context.check_hostname = False

ip = "104.16.34.249" # SO
verb = "TRACE"

conn = httplib.HTTPSConnection(ip, context=ssl_context)
conn.request(verb, "/")
r = conn.getresponse()
print r.read(), r.status, r.reason