扫描“多端口”

import socket
import optparse

#HOST="172.16.0.1"
#POST=5000
#addr = (HOST,POST)
def main(ztgtHost,ztgtPost):
    postlist = ztgtPost.split(",")
    for  i in range(len(postlist)) :
        try:
            c = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
            c.connect((ztgtHost,int(postlist[i])))
            #c.send(b"hello\r\n")
            #data = c.recv(1024)
            #print(str(data,encoding="gbk"))
            print("[+] %s 主机 %s/TCP 端口开放"%(ztgtHost,postlist[i]))
            c.close()
        except:
            print("[-] %s 主机 %s/TCP 端口关闭"%(ztgtHost,postlist[i]))

def opt():
    parser = optparse.OptionParser("用法 程序 -H <目标主机> -P <目标端口,目标端口,目标端口...>")
    parser.add_option("-H",dest="tgtHost",type="string",help="指定目标主机")
    parser.add_option("-P",dest="tgtPost",type="string",help="指定目标端口")
    (options,args) = parser.parse_args()
    ztgtHost = options.tgtHost
    ztgtPost = options.tgtPost
    if ztgtHost == None or ztgtPost == None :
        print(parser.usage)
    else :
        #addr = (ztgtHost,ztgtPost)
        main(ztgtHost,ztgtPost)


if __name__ == "__main__":
    opt()

效果截图显示:注意运行的时候一定要在该文件目录下运行

解释部分代码:

optparse 模块 可以帮你设计选项
python  socketclinet.py  -H 192.168.1.185 -P  80
主机192.168.1.185 80端口开放
主机192.168.1.185 80端口关闭

parser = optparse.OptinParser("用法的介绍")
parser.add_option("选项",dest="变量名1",type="类型",help="用法")

猜你喜欢

转载自blog.csdn.net/thj_1995/article/details/83180690