Python 检查+=s.recv(1024) 如果opts.verbose: 打印支票 如果“STARTTLS”处于选中状态: opts.starttls=True 打印“找到STARTTLS命令” 检查中的elif“AUTH TLS”: opts.starttls=True atls=真 打印“找到验证TLS命令” 其他: 打印“未找到STARTTLS命令!” 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 返回 #如果支持,发送适当的tls命令 如果选择“开始”,则: sys.stdout.flush() 如果是STL: 打印“发送STLS命令…” s、 发送(“STLS\n”) elif atls: 打印“发送验证TLS命令…” s、 发送(“验证TLS\n”) 其他: 打印“发送STARTTLS命令…” s、 发送(“STARTTLS\n”) 如果opts.verbose: 打印“等待答复…” sys.stdout.flush() recvall(s,100000,1) 打印 打印“发送客户端你好…” sys.stdout.flush() s、 发送(你好) 如果opts.verbose: 打印“正在等待服务器您好…” sys.stdout.flush() 尽管如此: 类型、版本、付款=recvmsg 如果类型==无: 打印“服务器已关闭连接,但未发送服务器Hello” 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 返回 #查找服务器hello done消息。 如果类型==22且ord(付款[0])==0x0E: 打破 打印“发送心跳请求…” sys.stdout.flush() s、 发送(hb) res+=命中率hb(s,targ) s、 关闭() 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 印刷品 返回res 除: 打印“连接到主机时出错:”,sys.exc_info()[0] 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 印刷品 def main(): 所有结果=“” #如果指定了文件,则循环遍历该文件 如果opts.filein: fileIN=open(opts.fileIN,“r”) 对于文件中的行: targetinfo=line.strip().split(“:”) 如果len(targetinfo)>1: allresults=bleed(targetinfo[0],int(targetinfo[1])) 其他: allresults=出血(targetinfo[0],选项端口) 如果所有结果: 打印“%s%”(所有结果) fileIN.close() 其他: 如果len(args)

Python 检查+=s.recv(1024) 如果opts.verbose: 打印支票 如果“STARTTLS”处于选中状态: opts.starttls=True 打印“找到STARTTLS命令” 检查中的elif“AUTH TLS”: opts.starttls=True atls=真 打印“找到验证TLS命令” 其他: 打印“未找到STARTTLS命令!” 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 返回 #如果支持,发送适当的tls命令 如果选择“开始”,则: sys.stdout.flush() 如果是STL: 打印“发送STLS命令…” s、 发送(“STLS\n”) elif atls: 打印“发送验证TLS命令…” s、 发送(“验证TLS\n”) 其他: 打印“发送STARTTLS命令…” s、 发送(“STARTTLS\n”) 如果opts.verbose: 打印“等待答复…” sys.stdout.flush() recvall(s,100000,1) 打印 打印“发送客户端你好…” sys.stdout.flush() s、 发送(你好) 如果opts.verbose: 打印“正在等待服务器您好…” sys.stdout.flush() 尽管如此: 类型、版本、付款=recvmsg 如果类型==无: 打印“服务器已关闭连接,但未发送服务器Hello” 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 返回 #查找服务器hello done消息。 如果类型==22且ord(付款[0])==0x0E: 打破 打印“发送心跳请求…” sys.stdout.flush() s、 发送(hb) res+=命中率hb(s,targ) s、 关闭() 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 印刷品 返回res 除: 打印“连接到主机时出错:”,sys.exc_info()[0] 3月3日日日日日日日日日日日日日日日日日日方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方方########################## 印刷品 def main(): 所有结果=“” #如果指定了文件,则循环遍历该文件 如果opts.filein: fileIN=open(opts.fileIN,“r”) 对于文件中的行: targetinfo=line.strip().split(“:”) 如果len(targetinfo)>1: allresults=bleed(targetinfo[0],int(targetinfo[1])) 其他: allresults=出血(targetinfo[0],选项端口) 如果所有结果: 打印“%s%”(所有结果) fileIN.close() 其他: 如果len(args),python,Python,错误是: root@bt:~/Desktop#python heartbleed.py文件“heartbleed.py”,第238行 如果(opts.starttls)或(端口在{2558711014321}): ^ 语法错误:无效语法请重试 if (opts.starttls) or (port in (25, 587, 110, 143, 21)): 将其转换为元组 {25, 587, 110, 143, 21} 是Python3语法。它创建一个集合,直接的Python2.x等效代码是

错误是:

root@bt:~/Desktop#python heartbleed.py文件“heartbleed.py”,第238行 如果(opts.starttls)或(端口在{2558711014321}): ^ 语法错误:无效语法

请重试

if (opts.starttls) or (port in (25, 587, 110, 143, 21)):
将其转换为元组

{25, 587, 110, 143, 21}
是Python3语法。它创建一个集合,直接的Python2.x等效代码是

set((25, 587, 110, 143, 21))
尽管任何序列类型都可以(例如Lafada的答案),但您可能会发现代码的其余部分具有与Python2.x不向后兼容的位


编辑:我错了。根据@jpmc26的评论,它是Python3语法,但也向后移植到Python2.7+

@TesselatingHeckler好的,那么这是否意味着最好升级到Python3?Lafada的bit修复了所有这些语法错误,但现在有了新的错误_接收数据时出错:意外的EOF接收记录负载-服务器关闭连接-是-除非您有其他需要Python 2的脚本,否则请尝试保留这两个解释器,因为这些脚本可能不会在Python 3上运行。编辑:我不知道这个错误是否与版本有关,或者其他什么。有道理。非常感谢。你有点不正确。
{1,2,3}
文本语法在2.7中进行了后端口。看见(是的,我确实做了测试。)@jpmc26:真奇怪。我确实测试了它并得到了一个错误,然后在Python3中检查了它,发现它是类型('set')。现在我重新测试,当然它是有效的。。。我以前到底考了什么???谢谢,我已经编辑了我的答案。
set((25, 587, 110, 143, 21))