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()

Categories: Python学习
Tags: Python 编程