1.Python的函数:关键字def()表示函数开始,可以在括号内填写任何变量,然后这些变量会被以引用的方式传递给函数,也就是说,函数内对这些变量的任何改变都会影响它们在主调函数中的值:
2.迭代:用for循环遍历多个元素;
>>>for x in range(1,255):
print("194.168.95."+str(x))
>>>portList=[21,22,25,80,110]
>>>for port in portList:
print(port)
3.文件输入/输出:在checkVulns(banner)函数中换上新的代码,这里是只读模式('r')打开文本文件,用.readlines()方法遍历文件中的每一行,必须用.strip('\r')方法将每一行的回车键去掉:
def checkVulns(banner):
f=open("vuln_banners.txt",'r')
for line in f.readlines():
if line.strip('\n') in banner:
print("[+] Server is vulnerable:" +banner.strip('\n'))
4.Python的sys模块:内置的sys模块使我们能访问到由Python解释器使用或维护的对象,其中包括标志,版本,整型数的最大尺寸,可用的模块,hook路径,标准出错/输入/输出的位置,以及调用解释器的命令行参数;
sys.argv列表中含有所有的命令行参数:
第一个sys.argv[0]元素中的是python脚本的名称,列表中的其余元素中则记录了之后的所有的命令行参数;
import sys
if len(sys.argv)==2:
filename=sys.argv[1]
print("[+] Reading Vulnerabilities From:" +filename)
5.Python的OS模块:内置的OS模块提供了丰富的适用于Mac,NT或Posix的操作系统的函数;这个模块允许程序独立地与操作系统环境,文件系统,用户数据库以及权限进行交互;
import sys
import os
if len(sys.argv)==2:
filename=sys.argv[1]
if not os.path.isfile(filename):
print('[-]'+filename+'does not exist.')
exit(0)
if not os.access(filename,os.R_OK):
print('[-]'+filename+'access denied')
exit(0)
print("[+] Reading Vulnerabilities From:" +filename)