2016-07-26 57 views
0

你好,我是新来的Python,我写它产生的DNS请求gaierror:[错误8]节点名,也不servname提供,或者不知道

from socket import error as socket_error 
    import threading 
    from random import randint 
    from time import sleep 

    def task(number): 
     try : 
      HOST = Random_website.random_website().rstrip() # fetches url 
      PORT = 80    # The same port as used by the server 
      s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 

      s.connect((HOST, PORT)) 
      print(str(number) +":"+HOST +"Connected") 
     except socket_error as serr: 
     if serr.errno != errno.ECONNREFUSED: 
      # Not the error we are looking for, re-raise 
      raise serr  

    thread_list = [] 

    for i in range(1, 100):  
    t = threading.Thread(target=task, args=(i,)) 
    thread_list.append(t) 

    for thread in thread_list: 
     thread.start() 

上面的代码执行引发此错误代码,任何人都可以帮助我出这 的,我从一开始就掏出我的头发

在此先感谢

+1

可能的重复[这是什么socket.gaierror是什么意思?](http://stackoverflow.com/questions/15246088/what-does-this-socket-gaierror-mean) –

回答

1

像这样:

Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2 
Type "copyright", "credits" or "license()" for more information. 
>>> import socket 
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
>>> s.connect(("www.google.com",80)) 
>>> s.connect(("http://www.google.com",80)) 

Traceback (most recent call last): 
    File "<pyshell#3>", line 1, in <module> 
    s.connect(("http://www.google.com",80)) 
    File "/usr/lib/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
gaierror: [Errno -2] Name or service not known 
>>> 

套接字不是HTTP连接!

在发送请求之前删除HTTP://标签!

编辑:

>>> import socket 
>>> s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
>>> s.connect(("digan.net",80)) 
>>> s.connect(("digan.net/hahaha/hihihi/etc",80)) 

Traceback (most recent call last): 
    File "<pyshell#8>", line 1, in <module> 
    s.connect(("digan.net/hahaha/hihihi/etc",80)) 
    File "/usr/lib/python2.7/socket.py", line 224, in meth 
    return getattr(self._sock,name)(*args) 
gaierror: [Errno -2] Name or service not known 
>>> 

插座不能发送请求到其他路径。只与服务器交谈!

+0

我删除了HTTP://,但仍然有这个问题 – abc

+0

我更新了@venkat – dsgdfg

+0

感谢@ dsgdfg,我知道了 – abc

0

当Web代理处于“开启”状态时,我收到了相同的错误消息,但是指向本地网络中的计算机的url可以在没有代理的情况下访问。设置网络代理(http)为“关闭”为我解决。

希望这有助于,亚历克斯。

+0

什么是'网络代理'?我在哪里设置它? –

相关问题