2016-05-20 3 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は、それが送信とrecvのオブジェクトを認識していないことを私に言っています。私は、socket.sendとsocket.recvが有効なオブジェクトであることを知っています。これは、次のpythonドキュメントへのリンクごとにソケットライブラリの一部です:https://docs.python.org/2/library/socket.html

私の質問は、なぜこれが機能しないのですか?私はまた、私のスクリプトでこの関数の目的が取得要求を介してWebサーバーのバナー情報を取得することに言及する必要があります。私は有効なIPアドレスと同様に機能にポート80を渡しています。

+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)あなたはインスタンス化Socket Objectためsendrecvコマンドを使用したいと思うでしょう。

あなたのケースでは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)を検討してください:) –

関連する問題