使用说明:使用的方法是python 文件路径(文件名).py 参数 “网站名”
参数说明:-i : 域名查ip; -c :查看有无cdn; -p : 查看端口是否开放; -w:网站whois信息; -z :子网站爆破; -a:全部
举例:假如我想要查看baidu有无cdn,并且文件名为1.py,那么终端运行的是:python 1.py -c "www.baidu.com"
字典可以自己自行导入,也可以在我的资源中获取
import socket
import requests
from whois import whois
import threading
import sys
# 域名反查IP
def DNS_IP(url):
ip=socket.gethostbyname(url)
print("此域名对应的ip是{}".format(ip))
#查看网站有无cdn
def cdn_or_not(url):
addr=socket.getaddrinfo(url,None)
s=[]
for i in addr:
if i[4][0] not in s:
s.append(i[4][0])
if len(s)>1:
print('存在cdn',s)
else:
print('不存在cdn')
#查看端口是否开启
def port_or_not(url):
ports=[80,8080,443,3306,21,23,3389]
try:
for port in ports:
sock=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
result=sock.connect_ex((url,port))
if result==0:
print("{} is open".format(port))
else:
print("{} is close".format(port))
except:
print("error")
#查看一个网站的注册时间相关信息
def whois_you(url):
data=whois(url)
print(data)
#用字典来跑子网站
#通过ping的结果来查看这个网站是否存在
def child_web(url):
for i in open('dic.txt'):
s=i.rstrip("\n")
url1=url.replace("www","")
urls=s+url1
try:
ip=socket.gethostbyname(urls)
print("{}对应的ip是{}".format(urls,ip))
except Exception as e:
pass
#sys.argv[0]表示代码本身文件路径,所以参数从1开始.
#sys.argv[1]表示第一个命令行参数
#例如 python sqlmap.py -u www.baidu.com sqlmap.py是第o个参数,-u是第1个,www.baidu.com是第2个
canshu=sys.argv[1]
url=sys.argv[2]
if canshu =="-i":
DNS_IP(url)
if canshu =="-c":
cdn_or_not(url)
if canshu =="-p":
port_or_not(url)
if canshu =="-w":
whois_you(url)
if canshu =="-z":
child_web(url)
if canshu=="-a":
DNS_IP(url)
cdn_or_not(url)
port_or_not(url)
whois_you(url)
child_web(url)