python实现端口扫描

python实现单线程的端口扫描

英文:241词 | 中文:735字

Posted by YY——阳阳 on November 8, 2020

前言

  为了自动检测本机的端口开关情况,但是是单线程的,还有待改进。

源码

import socket
def main():
    sk = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sk.settimeout(1000)
    ip = input('请输入目标主机(默认:127.0.0.1):')
    if ip == '':
        ip = '127.0.0.1'

    s = input('请输入目标主机开始端口(默认:0):')
    if s == '':
        startport = 0
    else:
        startport = int(s)

    s = input('请输入目标主机结束端口(默认:65536):')
    if s == '':
        endport = 65536
    else:
        endport = int(s)
    print('正在扫描%s的端口' % ip)
    for port in range(startport, endport + 1):
        try:
            sk.connect((ip, port))
            print('%s \'s %d is OK!' % (ip, port))
        except Exception:
            print('%s \'s %d is not OK!' % (ip, port))
    sk.close()

if __name__ == '__main__':
    main()