简介:自学自用
import socket,os,re,sys,time
from whois import whois
##域名解析IP
def _addr(url):
addr = socket.gethostbyname(url)
# addr = socket.getaddrinfo(url,None)[0][4][0]
print(url+'————>'+addr)
##判断是否存在CDN
def _cdn(url):
cdn_check = os.popen('nslookup {}'.format(url)).read()
cdn_checks = re.findall('\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}',cdn_check)
print(cdn_checks)
if len(cdn_checks) >= 3:
print(url+'——>'+'存在CDN')
else:
print(url + '——>' + '不存在CDN')
##端口扫描
##AF_INET:面向网络的ipv4协议,ipv6为AF_INET6
##SOCK_STREAM:面向流的TCP协议,SOCK_DGRAM:UDP协议
def _port(url):
ports = ['21','22','80','3306','3389']
service = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
for port in ports:
port_check = service.connect_ex((url,int(port)))
if port_check == 0:
print(url + f' {port} open')
time.sleep(0.1)
else:
print(url + f' {port} close')
time.sleep(0.1)
##whois查询
def _whois(url):
whois_check = whois(url)
print(whois_check)
##子域名查询
def _zym(url):
for zym_check in open('dic.txt'):
zym_url = zym_check.replace('\n','') + url.lstrip('www')
try:
zym_ip = socket.gethostbyname(zym_url)
print(zym_url+'——>'+zym_ip)
time.sleep(0.5)
except Exception as e:
pass
if __name__ == '__main__':
check = sys.argv[1]
url = sys.argv[2]
if check == 'all':
_addr(url)
_cdn(url)
_whois(url)
_port(url)
_zym(url)
测试: