一个简单的python端口扫描的脚本

发布时间:2020-03-25编辑:脚本学堂
分享一个python实现的端口扫描的脚本,很简单,适合新手参考。最后的check_all(),第一个参数是开始ip,第二个参数是结束ip,第三个是端口,没做防御措施,垃圾进垃圾出。

功能:python实现扫描端口。

测试环境:
校内网,测试时速度很快。
如果是在公网中,可能要把第3行的settimeout(2)超时调长点。

最后的check_all(),第一个参数是开始ip,第二个参数是结束ip,第三个是端口,没做防御措施,垃圾进垃圾出。
以后再完善。

代码:
 

复制代码 代码示例:
#!/bin/python
#site: www.jb200.com
#
def port_check(address, port): 
    msocket = socket.socket() 
    msocket.settimeout(2) 
    try: 
        msocket.connect((address, port)) 
        msocket.close() 
        return True 
    except socket.error, e: 
        print socket.error, e 
        return False 
 
def check_all(ip_start, ip_end, port): 
    mip_start = ip_start.split('.') 
    mip_end = ip_end.split('.') 
 
    for i in range(4): 
        mip_start[i] = int(mip_start[i]) 
        mip_end[i] = int(mip_end[i]) 
 
    while True: 
        mip = [0,0,0,0] 
        for i in range(4): 
            mip[i] = str(mip_start[i]) 
        mip = '.'.join(mip) 
        print 'now checking', mip 
        if port_check(mip, 21): 
            print mip 
        mip_start[3] += 1 
 
        if mip_start[3] > 255: 
            mip_start[2] += 1 
        if mip_start[2] > 255: 
            mip_start[1] += 1 
        if mip_start[1] > 255: 
            mip_start[0] += 1 
        if mip_start[0] > 255: 
            return 
 
        i = 0 
        while i < 4 and mip_start[i] <= mip_end[i]: 
            i += 1 
 
        if i != 4: return 
 
import socket 
check_all('10.1.44.1', '10.1.44.255', 21)