【发布时间】:2016-04-15 19:54:05
【问题描述】:
我的想法是在命令行中将 IP 地址列表提供给以下代码以检查 HTTP 方法。问题是 Python 抱怨它无法将 IP 地址解析为主机名,并出现以下错误:
requests.exceptions.ConnectionError: ('Connection aborted.', gaierror(8, 'nodename nor servname provided, or not known'))
如何关闭 DNS IP --> 主机名解析?
#!/usr/bin/python
#Usage: ./name-of-this-script.py list-of-IPs
import sys
import requests
requests.packages.urllib3.disable_warnings()
## Variables
f = open(sys.argv[1], 'r')
verbs = ['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','PATCH','PROPATCH','REBIND','REPORT','SEARCH','UNBIND','UNCHECKOUT','UNLINK','UPDATE','UPATEDDIRECTREF','VERSION-CONTROL','LONGPHONYHTTPMETHOD']
print "----------------------------"
print "Permitted HTTP methods indicated below by 200 OK."
print """
To control which HTTP methods are permitted on Apache
consult:
https://httpd.apache.org/docs/trunk/mod/mod_allowmethods.html
"""
print "----------------------------"
for line in f:
for verb in verbs:
print line
#req = requests.request(verb, sys.argv[1], verify=False)
host = 'https://'+ line
req = requests.request(verb, host, verify=False)
print verb, req.status_code, req.reason
if verb == 'TRACE' and 'TRACE / HTTP/1.1' in req.text:
print 'Possible Cross Site Tracing Vulnerability found!'
【问题讨论】:
标签: python dns python-requests