Python脚本--端口扫描器
admin
2023-07-04 03:02:46
0

一个用python写的简单的端口扫描器,python环境为 3.7.0,windows系统

扫描给定主机是否开放了指定的端口
TCP连接扫描是利用TCP的三次握手来确定主机的端口是否开放。确定主机端口开放之后,给端口发送消息,接收端口返回的消息,然后判断该端口运行的服务。
使用时,-H 参数可以提供主机的域名或者ip地址,-p/-P 写要扫描的端口,多个端口用逗号分隔

'''
@Author:yw
参考书籍:《python绝技:运用python成为顶级***》
'''
import optparse
from socket import *
import threading
threadlock = threading.Lock() #实例化threadlock对象

def Conn_scan(Host, Port):
    try:
        conn = socket(AF_INET,SOCK_STREAM)
        conn.connect((Host, Port))
        #conn.send('ywboy'.encode('utf-8')) #发送测试
        #results = conn.recv(100)           #接收主机返回的信息
        threadlock.acquire()                 #加锁
        print("[+]%d/tcp Open" % Port)
        #print('[+]'+results.decode('utf-8'))
        conn.close()
    except Exception as e:
        threadlock.acquire()                 #释放锁
        print('[-]%d/Tcp Closed' % Port)
    finally:
        threadlock.release()
        conn.close()
def Port_scan(Host, Ports):
    try:
        IP = gethostbyname(Host)        ##获得对应主机的ip地址
    except:
        print("[-] Cannot resolve '%s':Unknow host" % Host)
        return
    try:
        Name = gethostbyaddr(Host)          ##获得对应主机的信息,返回主机名、主机别名列表、主机IP地址列表
        print("\n[+] Scan result for:"+Name[0])
    except:
        print("\n[+] Scan Results for:"+IP)
    setdefaulttimeout(1)
    for Port in Ports:
        print("Scan port:"+Port)
        Conn_scan(Host, int(Port))
def main():
    usage = "usage %prog -H  -p/-P "
    parse = optparse.OptionParser(usage)
    parse.add_option('-H', dest='Host', type='string', help='target Host')
    parse.add_option('-p','-P', dest='Ports', type='string', help='SCan Port')
    (options, args) = parse.parse_args()
    Host = options.Host
    Ports = str(options.Ports).split(',')
    if (Host==None)|(Ports==None):
        print(parse.usage)
        exit(0)
    Port_scan(Host,Ports)
if __name__ == '__main__':
    main()

上述代码,因为我只是做了端口扫描,所以注释掉的判断端口扫描服务的代码

运行结果:

Python脚本--端口扫描器

相关内容

热门资讯

日本要搞两个首都? 日本媒体日前报道,日本维新会正在推进将大阪设为“副首都”的构想,定于6月中旬组建一个专门小组。对此,...
稳舵扬帆正当时——5月全国各地... 原标题:稳中求进每月看|稳舵扬帆正当时——5月全国各地经济社会发展观察从多地以法治之力护航民营经济高...
燃气灶打火一会就灭是什么原因呢 原因是1、燃气灶过压保护,可以通过增加减压阀来解决这个问题。2、可能是因为燃气灶电池没有电了,可以将...
燃气开的燃气灶打不了火什么原因 可能是燃气灶电池电量不足。可能是燃气通路不畅通,如果火花声音清脆有力,但是点不着火。可能是燃气灶老化...
好太太燃气灶有电有气打不 这种情况原因有很多种,1、可能的原因就是我们的燃气灶进入了过压保护,我们家中使用的很多燃气灶都有过压...
燃气灶打火就是不着咋办 燃气灶是我们日常生活中经常使用的家用电器,但有时候我们会遇到燃气灶打火不着的情况,让人十分苦恼。那我...
燃气灶光打火没有气进来怎么回事 原因是燃气灶电池没有电了,可以将燃气灶的电池盒拆下来更换一个新的一号电池;还有可能是燃气灶的线路接触...
内蒙古包头:首批投运1000辆... 新华社5月31日消息,近日,我国自主研发的氢能两轮车在内蒙古自治区包头市面向公众投入运营,首批将在公...
缅甸边境发生爆炸,云南群众目击... 5月31日,缅甸掸邦北部南坎镇发生一起爆炸事故,已导致多人伤亡,多处民宅、房屋遭到严重损毁。经初步调...
大湾区打出智造新名片,高域首台... 近日,在广州黄埔区的智能制造产业园内,一架白色多旋翼飞行器缓缓驶出生产线,标志着高域(GOVY)这家...