gpt4 book ai didi

python - 使用 Python 套接字出现意外的 HTML 错误响应

转载 作者:太空宇宙 更新时间:2023-11-03 17:19:43 25 4
gpt4 key购买 nike

我正在按照教程使用 Python 套接字从网页检索 HTML here

我有一个在 Ubuntu 客户机上运行的 Apache 服务器,它为我的网站托管单个 HTML 文件。我已在主机操作系统的 /etc/hosts 文件中创建了一个 DNS 条目,以便可以通过 URL vulnerable 访问该网页。

我已验证可以通过主机上的网络浏览器访问我的网页。

我对代码做了一些修改以适合我的情况。

import socket
import sys # needed for sys.exit()

try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except socket.error:
print ("Failed to initialize socket")
sys.exit()

print ("Socket initialized")

host = "vulnerable"
port = 80

try:
remote_ip = socket.gethostbyname(host)
except socket.gaierror as e:
print ("Hostname could not be resolved. Exiting")
sys.exit()

s.connect((remote_ip, port))

print ("Socket Connected to " +host+ " on IP " + remote_ip)

message = "GET /HTTP/1.1\r\n\r\n".encode('utf-8') # convert string to byte message, otherwise won't send

try:
s.sendall(message)
except socket.error:
print ("Send Failed")
sys.exit()

print ("Message sent successfully")

reply = s.recv(4096)
print (reply)

当我尝试从网站检索 HTML 时,收到意外的错误 404。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /HTTP/1.1 was not found on this server.</p>
<hr>
<address>Apache/2.4.10 (Ubuntu) Server at 127.0.1.1 Port 80</address>
</body></html>

当我可以毫无问题地从网络浏览器访问我的网页时,我不明白为什么会收到此 404 错误。

最佳答案

这就是你的问题

message = "GET/HTTP/1.1\r\n\r\n".encode('utf-8')

您需要指定要检索的资源 - 这就是您收到在此服务器上找不到请求的 URL/HTTP/1.1 作为来自 Web 服务器的响应的原因。您正在请求资源 /HTTP/1.1,但找不到该资源并导致 404 响应。

消息中,确保指定要检索的资源,例如

message = "GET/index.html HTTP/1.1\r\n\r\n".encode('utf-8')

关于python - 使用 Python 套接字出现意外的 HTML 错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33293279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com