python test

import threading
import time
from socket import *
 
class ScanTcpPort:
    def __init__(self):
        self.port = 0
        self.lock = threading.Lock()
        setdefaulttimeout(1)
        self.f = open('scanportlog','w')
    def __del__( self ):
        self.f.close()
    def savelog(self,host):
        self.f.write('扫描的ip:%s\r\n' % host)
    def scan(self,host,threadnum):
        self.lock.acquire()
        self.port += 1
        #num = self.port
        try:
            s = socket(AF_INET,SOCK_STREAM)
            s.connect((host,self.port))
            log='thread%d:port %d open' % (threadnum,self.port)
            print(log)
            self.f.write(log+"\r\n")
            #self.f.write("\r\n")
            s.close()
        except:
            log='thread%d:port %d close' % (threadnum,self.port)           
            print(log)
            self.f.write(log+"\r\n")
            #self.f.write("\r\n")
        self.lock.release()
        return self.port
 

class jdThread(threading.Thread):
    def __init__(self,item,ip,endport):
        threading.Thread.__init__(self)
        self.item = item
        self.ip = ip
        self.endport = endport
    def run(self):
        while True:        
            #time.sleep(0.1)
            value = n.scan(self.ip,self.item)
            if value > self.endport:
                return
n = ScanTcpPort()
def main():
    ip=input("请输入ip地址:")
    portlimit=int(input("请输入要扫描到的端口号:"))     
    n.savelog(ip)
    for item in range(5):
        t = jdThread(item,ip,portlimit)
        t.start()
        #t.join()#使线程一个一个执行
if __name__ == '__main__':
    main()
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值