我正在阅读黑帽Python这本书,虽然它是在2015年写的,但其中的一些代码似乎有点过时。例如,print语句没有使用括号。然而,我似乎不能让下面的脚本运行,并且总是得到一个错误。
# TCP Client Tool
import socket
target_host = "www.google.com"
target_port = 80
# creates a socket object. AF_INET parameter specifies IPv4 addr/host. SOCK_STREAM is TCP specific, not UDP.
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# connect the client
client.connect((target_host, target_port))
# sending some data
client.send("GET / HTTP/1.1\r\nHost: google.com\r\n\r\n\")
# receive some data
response = client.recv(4096)
print(response)我得到的错误只是简单地读取,文件"",第15行client.send("GET /HTTP1.1\r\n主机: google.com\r\n\r\n\") ^
发布于 2020-06-08 21:59:36
通过在前面放一个\来转义",这意味着python不知道字符串在这里结束。你可以注意到,在你的帖子中,该行之后的所有代码都是彩色的,就像它是一个字符串一样。
client.send还需要一个byte-like object,而不是一个字符串。您可以通过在字符串前放置一个b来指定:
client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")之后,脚本就可以正常工作了
https://stackoverflow.com/questions/62263592
复制相似问题