异常处理与函数

自作多情 提交于 2019-12-18 14:41:37

异常处理

try/except用于处理异常,在正在运行的程序或脚本的上下文环境中处理错误。

try:
	print("[+] 1337/0 ="+str(1337/0))
except:
	print("[-] Error.")	

可以将异常的报错消息储存到变量e中,以便方便其打印出来,同时需要显示式的将变量e转换成一个字符串。

try:
    print("[+] 1337/1 = "+str(1337/0))
except Exception as e:
    print("[-] Error="+str(e))

在这里插入图片描述

函数

在python中,函数提供了高效的可重用的代码块。通常,这使得程序员能够编写一个用以完成一个任务单一、(与程序的其他部分)高度耦合的操作的代码块。关键字def()表示函数开始。
小脚本用于探测目标主机FTP服务。

import socket
def retBanner(ip,port):
    try:
        socket.setdefaulttimeout(2)
        s = socket.socket()
        s.connect((ip,port))
        banner = str(s.recv(1024))
        return str(banner)
    except Exception as e:
        print ("[-]Error="+str(e))
def main():
    ip1 = '127.168.0.177'
    ip2 = '192.168.0.219'
    port = 21
    banner1 = retBanner(ip1,port)
    if banner1:
        print('[+]' + ip1 + ':' + banner1)
    banner2 = retBanner(ip2,port)
    if banner2:
        print('[+]' + ip2 + ':' + banner2)
if __name__ == '__main__':
        main()

在这里插入图片描述
对输出banner值进行检查。

import socket
def retBanner(ip,port):
    try:
        socket.setdefaulttimeout(2)
        s = socket.socket()
        s.connect((ip,port))
        banner = str(s.recv(1024))
        return str(banner)
    except Exception as e:
        print ("[-]Error="+str(e))
def checkVulns(banner):
    if "FTP" in banner:
        print("[+]The target FTP OPEN")
    else:
        print("[-]The target is not vulnerable")   
def main():
    ip1 = '127.168.0.177'
    ip2 = '192.168.0.219'
    port = 21
    banner1 = retBanner(ip1,port)		#在主函数中调用自定义函数retbanner
    if banner1:
        print('[+]' + ip1 + ':' + banner1)
        checkVulns(banner1)			 #在主函数中调用定义的函数checkvulns
    banner2 = retBanner(ip2,port)
    if banner2:
        print('[+]' + ip2 + ':' + banner2)
        checkVulns(banner2)              #在主函数中调用定义的函数checkvulns
if __name__ == '__main__':
        main()

在这里插入图片描述

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!