【发布时间】:2014-06-12 08:10:08
【问题描述】:
当你运行这个 python 脚本时,你会在 127.0.0.1:5000/ 上看到一个与 flask 网络连接的功能
但是,从开始运行脚本开始,我无法确定打印网络的所有功能。我的意思是我丢失了以前的数据,因此我可以在刷新页面时将网络的任何一项功能打印到我的 Web 服务器。
我没有在 Flask 文档中找到任何具体内容。有人说 urllib2 或 post.request 对它很有用,但我对 Flask 和 Python for web 完全不熟悉。
提前致谢!
代码:
import socket, sys
from struct import *
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
while True:
packet = s.recvfrom(65536)
packet = packet[0]
ip_header = packet[0:20]
iph = unpack('!2B3H2BH4s4s' , ip_header)
t_length = iph[2]
protocol = iph[6]
s_addr = socket.inet_ntoa(iph[8]);
d_addr = socket.inet_ntoa(iph[9]);
protocol_s = protocol
if protocol == 1:
protocol_s = 'ICMP'
if protocol == 6:
protocol_s = 'TCP'
if protocol == 17:
protocol_s = 'UDP'
tcp_header = packet[20:40]
tcph = unpack('!HHLLBBHHH' , tcp_header)
dest_port = tcph[1]
test = 'Protocol : ' + protocol_s + ' | Source Address : ' + str(s_addr) + ' | Destination Address : ' + str(d_addr) + ' | Dest Port : ' + str(dest_port) + ' | Packet Length : ' + str(t_length)
return test
if __name__ == '__main__':
app.run()
【问题讨论】:
-
请修正您的代码标识。
-
什么是
features of network?你到底想找到什么? -
协议、源地址和目的地址、目的端口、包长度..
-
Flask 不是服务器;它是一个 WSGI 应用程序。但是 WSGI 应用程序被设计为使用 HTTP,它是一个 TCP-only 协议。 WSGI 应用程序无权访问各个数据包。