TJ 'O Connorの' Violent Python 'の本からバナーグラバーとポートスキャナをタイプしただけで、実行時に文法エラーは出ませんが、出力はありませんだから誰かが間違ったことを教えてもらえますか? Python 2.6で書かれた本は2.7を使用していますが、それが問題なのかどうかわかりません。どんな助けでも大歓迎です!あなたのコードは、関数の宣言で完全に構成されているので本はまた、「Uとして輸入ソケット」だったが、私はそれを取ったので、それは構文エラーを持って、それはPythonでペンテストする
import optparse
import socket
def connScan(tgtHost,tgtPort):
try:
connSkt= socket(AF_INET,SOCK_STREAM)
connSkt.connect((tgtHost,tgtPort))
connSkt.send('Violent Python\r\n')
results= connSkt.recv(1024)
print '[+]%d/tcp open' % tgtPort
print '[+]' + str(results)
connSkt.close()
except:
print '[-]%d/tcp closed' % tgtPort
def portScan(tgtHost,tgtPorts):
try:
tgtIP=gethostbyname(tgtHost)
except:
print "[-] Cannot resolve '%s': Unkonwn host" % tgtHost
return
try:
tgtName= gethostbyaddr(tgtIP)
print '\n[+]Scan results for: ' + tgtIP
setdefaulttimeout(1)
for tgtPort in tgtPorts:
print 'Scanning port ' + tgtPort
connScan(tgtHost,int(tgtPort))
except:
print 'exception granted'
def main():
parser = optparse.OptionParser('usage %prog -h'+'<target host> -p <target port>')
parser.add_option('-h', dest='tgtHost', type='string', help='specify target host')
parser.add_option('-p', dest='tgtPort', type='int', help='specify target port[s] seperated by comma')
(options,args) = parser.parse_args()
tgtHost= options.tgtHost
tgtPorts= str(options.tgtPort).split(',')
if (tgtHost == None)|(tgtPorts[0] == None):
print '[*] You must specify a target host and port[s]'
exit(0)
portScan(tgtHost,tgtPorts)
if __name__=='__main__':
main()
'import module as x'はモジュールを別の名前でインポートします。広く使われている例は 'import numpy as np'です。これにより、異なる名前でモジュールにアクセスすることができます。 – SitiSchu
は、 'if __name__ == '__main __':'文が実際には 'main'関数に含まれているか、それともSOのコピー/ペーストの誤字ですか? – Stael