Python学习记录_1
p0nxp posted by:最近开始”真正”接触Python了,也是计划中的一步,毕竟Python在网络安全中的应用能力还是很强大的. 估摸着以后会经常接触到一些需要自动化的情况,或为了实现我想做的.怎么说都要学好,哈哈……OK!废话不多说,Python的优点不再多说,反正网上搜一大堆:(
我的计划大概是这样的.把每次学习的最后代码(带注释)贴出来.不论代码如何,是好是坏. 也算是记录了我的学习历程吧!
下面贴上代码
#!/usr/bin/env python
#-*- coding:utf-8 -*- #声明编码方式,不然中文会报错
import socket
import sys
#输出几行test,没列颜色不同
def printest():
for i in range(2):
for j in (2):
print "\033[0;32m| Test1\033[0m"+" | "+"\033[0;33mTest2\033[0m"+" | "+"\033[0;34mTest3\033[0m"+"\n"
#以下根据输入的行数输出金字塔
def star():
try:
line = raw_input("请输入金字塔的高度(太高就炸了):")
line = int(line)+1
except Exception, e: #要捕获异常,不然异常会直接输出
print "请输入整数!"
exit()
i = 0
for i in range(line):
blank = line - i
star = (i-1)*2+1
print " "*blank + "*"*star# + "\n"
#banner和文件里的信息对比
def bannercmp(banner):
bfile = open("test.txt","r")
for line in bfile:
if line.strip("\n") in banner:
print 'Found vulnerable:'+banner.strip("\n")
else:
print "Not Found Vulnerable"
#网络socket,简单获取banner
def socketest(host,port):
socket.setdefaulttimeout(5) #设置默认超时时间
s = socket.socket()
try:
s.connect((host,port))
except Exception, e:
print "[-]Error = "+str(e) #设置异常处理
exit()
banner = s.recv(1024)
print "Extract Port Banner ->> "+banner
#定义帮助信息函数
def usageinfo():
print """
Usage:
script.py star 输出金字塔
socket [host] [port] 获取banner信息
"""
def main():
#str = type(sys.argv) #sys.argv获取数据类型为list.记录sys.argv[0]一直都是脚本名本身
if len(sys.argv) < 2:
usageinfo()
exit()
if sys.argv[1].strip() == 'star':
star()
exit()
elif sys.argv[1].strip() == 'socket':
try:
host = sys.argv[2]
port = int(sys.argv[3]) #传入的是字符类型,需要转为整数型,不然connect时会报错
except Exception,e:
print "Please Provide Host and port"
exit()
socketest(host,port)
exit()
usageinfo()
if __name__ == '__main__':
main()