首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Black Hat Python TCP客户端

Black Hat Python TCP客户端
EN

Stack Overflow用户
提问于 2020-06-08 21:48:15
回答 1查看 274关注 0票数 1

我正在阅读黑帽Python这本书,虽然它是在2015年写的,但其中的一些代码似乎有点过时。例如,print语句没有使用括号。然而,我似乎不能让下面的脚本运行,并且总是得到一个错误。

代码语言:javascript
复制
    # 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\") ^

EN

回答 1

Stack Overflow用户

发布于 2020-06-08 21:59:36

通过在前面放一个\来转义",这意味着python不知道字符串在这里结束。你可以注意到,在你的帖子中,该行之后的所有代码都是彩色的,就像它是一个字符串一样。

client.send还需要一个byte-like object,而不是一个字符串。您可以通过在字符串前放置一个b来指定:

代码语言:javascript
复制
client.send(b"GET / HTTP/1.1\r\nHost: google.com\r\n\r\n")

之后,脚本就可以正常工作了

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62263592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档