【问题标题】:Why is my stdout interfering with my webpage in python?为什么我的标准输出会干扰我在 python 中的网页?
【发布时间】:2012-02-29 22:23:47
【问题描述】:

非常简单的代码,只使用 scapy 触发一个 pcap(数据包),

如果我只想对自己做简单的 cgi-bin POSTS 以运行一组 10 个简单的测试,为什么这只是作为文本(而不是网站)返回。如果我注释掉这一行

sendp(a, iface="em1")

那么下面的代码实际上生成的网站很好......但它实际上不会发送数据包,我想这是标准输出的东西......欢迎提出建议!

#!/usr/local/bin/python

from scapy.all import *
#import v6tester_main

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>NPD Automation Tool - GCT-USG</title>'
print '</head>'
print '<body>'
print '<font> NPD Automation Tool </font>'

a = Ether() / IP() / IPv6() / ICMPv6EchoRequest()
sendp(a, iface="em1")

print '<br>'
print '<font>End of Test</font>'
print '</body>'
print '</html>'

如果我查看源代码,我会看到这个->

<html>
<head>
<title>NPD Automation Tool - GCT-USG</title>
</head>
<body>
<font> NPD Automation Tool </font>

Sent 1 packets.
<br>
<font>End of Test</font>
</body>
</html>

【问题讨论】:

  • “查看源代码”时看到了什么?
  • @JimGarrison 嘿,上面添加了,我将尝试在发送的 1 个数据包周围包裹一个字体标签,看看是否可行....通常 html 不是那么挑剔

标签: python cgi-bin scapy


【解决方案1】:

很可能 sendp 的输出使 HTML 变得如此糟糕,它显示为文本, 你可以做的是尝试将verbose = 0传递给sendp(如果输出不重要), 或尝试其他详细级别。 如果 sendp 的输出对您很重要,您可以在单独的脚本中运行它 使用 subprocess.Popen 并尝试格式化输出以使其适合 HTML 页面。

编辑:操作,有人已经回答了几乎相同的问题

【讨论】:

  • 你能把我和你说的联系起来吗?我不确定我是否理解 verbose=0...
  • 我正在投票给你买还没有标记正确,现在尝试使用子流程模块并提出了一个不同的问题here走你的路
【解决方案2】:

据我了解,sendp 不只是将包回显到标准输出;它以较低的协议级别将其“通过网络”发送。因此,如果您想发送一个 html 标头,您需要将其包装在一个包中,而不是相反。

但是你确定你需要弄乱 scapy 吗?如果您只想向网络服务器发送 POST 请求,您可以使用urllib2.urlopen。将您的 POST 数据放在可选的 data 参数中,它将使用 POST 而不是 GET 来处理请求。

【讨论】:

  • 哈哈抱歉这两者是完全分开的,网站只是一个包装器,所以我可以用 pcaps 测试防火墙。 Web 服务器是通过 em0 接口控制的,但是 em1 接口是单独用于 FW 测试的,这只是我发送的一个虚拟 pcap。
【解决方案3】:

您似乎没有发送 http 数据(例如响应标头)。

你应该是因为它是在网络服务器上运行的

【讨论】:

  • pcap 刚刚被发送出去,这是为了防火墙测试,这只是一个虚拟 pcap,所以它只是空的。它在未注释掉时发送,但网站未生成...
  • 我认为我的第一行是生成真正的 HTML...它适用于我的许多其他脚本...您有常见问题解答或如何为您正在谈论的内容分页 :)
  • 我没有意识到脚本在网络服务器中运行(我查看了 your other question )所以你应该发送 http 数据。
猜你喜欢
  • 1970-01-01
  • 2016-05-16
  • 2011-11-30
  • 2011-11-11
  • 2011-03-14
  • 2013-01-07
  • 2011-11-26
  • 2021-01-06
  • 2012-08-19
相关资源
最近更新 更多