异常处理与函数

异常处理

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

在这里插入图片描述

发布了37 篇原创文章 · 获赞 29 · 访问量 3704

猜你喜欢

转载自blog.csdn.net/weixin_44253823/article/details/103584220