py异常处理、函数、迭代
目录
(我所用为python3+pycharm)
一、异常处理
1.1、简介:
1、编写的程序语法完全正确, 在程序运行或执行时仍可能出错(最典型的就是除零错,因为0 不能作为除数, Python 解释器会显示该错误,并会终止程序的执行)
2、在正在运行的程序或脚本的上下文环境中处理错误:异常处理功能
try/except语句进行异常处理。当错误发生时, 异常处理捕获这一错误并在屏幕上打印一条消息
3、为了获取错误的确切信息,把异常存储到变量e中, 以便将其打印出来, 同时还要将变量e转换成一个字符串
try:
print(''100/0 = "+str(100/0))
except Exception as e:
print("Error = "+str(e))
注(版本兼容问题):
python2:except Exception,e:
python3:except Exception as e:
1.2、示例:
用异常处理来更新抓取banner 的脚本。把网络连接代码写在try 语句块中, 尝试连接到一台没有在TCP 端口21 上运行FTP 服务的机器。 就会看到一条报错的消息
import socket
socket.setdefaulttimeout(2)
s=socket.socket()
try:
s.connect(('192.168.190.131',21))
except Exception as e:
print('Error='+str(e))
二、函数:
2.1、简介:
函数提供了高效的可重用代码块,python自带许多内置函数, 也可以创建定义的函数
关键字def()表示函数开始,并且可以在括号内填写任何变量,这些变量会被以引用的方式传递给函数
2.2、示例1:
创建一个函数来完成连接到FTP 服务器并返回banner的操作
(我直接使用pycharm运行的,节省调试时间)
2.3、示例2:
banner返回后, 我们的脚本需要把它们和一些已知有漏洞的程序(的banner)进行比较
checkVulns()函数接收参数banner变量, 并以此来判断服务器中是否存在漏洞
三、迭代
3.1、简介:
检查三个不同的IP地址,与写三次相同的程序相比, 用for循环遍历多个元素可能更容易
3.2、示例1:
如果想遍历IP地址从192.168.95.1到192.168.95.254的整个/24子网, 使用for循环(范围从1
到255)可以打印出整个子网(range还可设置每个间距)
3.3、示例2:
遍历所有已知端口列表的方式检查漏洞, 只需遍历某个list中的所有元素即可, 无须遍历某个范围内的所有数字
3.4、示例3:
通过嵌套两个for循环, 我们可以打印出每个IP地址上的每个端口
3.5、示例4:
利用迭代IP 地址和端口, 更新漏洞检查脚本。现在, 脚本将测试192.168.190.0/24子网上的所有254个IP地址, 测试的端口包括telnet 、SSH、SMTP、HTTP、IMAP及HTTPS协议的端口
- 点赞
- 收藏
- 关注作者
评论(0)