使用python,我编译了以下脚本:
from socket import *
socket = socket(AF_INET, SOCK_DGRAM)
socket.bind(("127.0.0.1", 80))
while True:
data, addr = socket.recvfrom(1024)
print addr[1]
它应该从端口80接收所有传入的流量。但是,如果我加载一个网页,它没有任何重要的东西。我的脚本有问题吗?
答案 0 :(得分:2)
这里似乎存在一些误解,并希望明确未来的访客。当您访问网站时,您不会从端口80发送数据包,您将数据包从随机端口发送到另一台计算机的端口80。在这种情况下,当您访问网站时,您希望在端口80上有数据包:这不可能发生。这仅适用于您托管网站或收听该端口的情况。
答案 1 :(得分:1)
如果您真的想在所有接口上侦听所有传入流量,可能尝试绑定到0.0.0.0而不是127.0.0.1?
正如刚才所说,你的套接字配对有点奇怪。这应该让你开始:
from socket import *
s = socket(AF_INET, SOCK_STREAM)
s.bind(('0.0.0.0', 80))
s.listen(1)
while True:
print s.accept()[1]