2016-05-20 77 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)如果它解決了你的問題:) –