2016-05-20 40 views
0

你好我试图从套接字库,更具体地说socket.send和socket.recv调用一个特定的对象。我使用的IDE是pycharm,它告诉我它无法在套接字库中找到该引用。这是我的代码片段:Python 2.7.11套接字库缺少对象?

def http(ip,port): 
    try: 
     socket.setdefaulttimeout(2) 
     a = socket.socket() 
     a.connect((ip,port)) 
     socket.send("GET HTTP/1.1 \r\n") 
     giveMeUrInfoz = socket.recv(1024) 
     print "[+]" + "Huzzah! " + str(giveMeUrInfoz) 
     print "**********************************************************" 
     return giveMeUrInfoz 
    except Exception, e: 
     print "[-] Unable to grab info" + str(e) 
     print "**********************************************************" 
     return str(e) 

pycharm IDE告诉我它无法识别send和recv对象。我知道一个事实,即socket.send和socket.recv是套接字库的有效对象的一部分,请参阅以下python文档链接:https://docs.python.org/2/library/socket.html

我的问题是,为什么这不起作用?我还应该提到在我的脚本中这个功能的目的是通过获取请求获取web服务器的标题信息。我将端口80传递给函数以及有效的IP地址。

+0

你是否命名了模块'socket.py'? –

+0

可能想看看[这个问题](http://stackoverflow.com/questions/36250353/importing-installed-package-from-script-raises-attributeerror-module-has-no-at) –

+1

你需要提供追踪! – thebjorn

回答

1

代替socket.send("GET HTTP/1.1 \r\n")socket.recv(1024)你将要使用的sendrecv命令实例化Socket Object

所以在你的情况下,这将是a.send("GET HTTP/1.1 \r\n")a.recv(1024)

+0

感谢您的收获。 – 0xa13x

+0

没问题。很高兴它的工作。 –

+0

@ 0xa13x考虑[接受这个答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)如果它解决了你的问题:) –