gpt4 book ai didi

python - 获取 socket.gaierror : [Errno 8] nodename nor servname provided, 或未知

转载 作者:行者123 更新时间:2023-12-03 11:56:31 49 4
gpt4 key购买 nike

我正在尝试设置代理,并且正在使用 socket 和 httlib 模块。我的网络浏览器指向服务器运行的本地主机和端口,我正在通过服务器处理 HTTP 请求。
当浏览器请求网页时,我从 HTTP header 中提取 url,然后尝试通过以下方式通过代理发出请求:-

conn = httplib.HTTPSConnection(url,serverPort)
conn.request("GET",url)
r1 = conn.getresponse()
print r1.status,r1.reason

请注意,第一行中的 serverPort 参数是代理所在的端口,而 url 是从浏览器发出网页请求时从 HTTP header 中提取的 url。

因此,当我运行代理并将浏览器类型输入到 http://www.google.com 之类的地址时,我似乎遇到了错误。或 http://www.getmetal.org .

错误是:-

socket.gaierror: [Errno 8] nodename or servname provided, or not known

还有一个痕迹:-

http://i.stack.imgur.com/UgZwD.png

如果有人对问题可能是什么有任何建议,我会很高兴。
这是代理服务器的代码: 注意:如果您正在测试它,可能会出现一些缩进问题,因为必须将所有内容都放在右侧 4 个空格以使其显示为代码段
from socket import *
import httplib
import webbrowser
import string

serverPort = 2000
serverSocket = socket(AF_INET,SOCK_STREAM)
serverSocket.bind(('', serverPort))
serverSocket.listen(2)
urlList=['www.facebook.com','www.youtube.com','www.twitter.com']
print 'The server is ready to receive'

while 1:
connectionSocket, addr = serverSocket.accept()
print addr
req= connectionSocket.recv(1024)


#parse Get request here abnd extract url
reqHeaderData= req.split('\n')

newList=[]

x=0
while x<len(reqHeaderData):

st=reqHeaderData[x]
element= st.split(' ')
print element
newList.append(element)
x=x+1

print newList[0][1]
url = newList[0][1]
url= url[:-1]


for i in urlList:
if url ==i:

raise Exception("The website you are trying to access is blocked")




connectionSocket.send('Valid')


print(url)
conn = httplib.HTTPSConnection(url,serverPort)
print conn
conn.request("GET",url)
print "request printed"
r1 = conn.getresponse()
print r1.status,r1.reason
print r1
#200 OK

data = r1.read()

x= r1.getheaders()

for i in x:
print i


connectionSocket.close()

最佳答案

这是我看到的一个常见错误...

url="https://foo.tld"
port=443

conn=httplib.HTTPConnection(url,port)

由于“https://”,这将不起作用...

你应该这样做:
url="foo.tld"
port=443

conn=httplib.HTTPConnection(url,port)

这会奏效。我不确定这是否是您的具体问题,但肯定需要验证。

关于python - 获取 socket.gaierror : [Errno 8] nodename nor servname provided, 或未知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35565768/

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