我是一个小菜,但是慢慢的发现自己有了程序员思想;慢慢努力.
昨晚看到微信公众账号,有一篇15个程序员要做到的;文章蛮不错的,受益匪浅. 多学习 多冲突 多死脑筋
twisted分布式扫描...
twisted 定时处理(task.LoopingCall) (factory内)
Reactor:是管理twisted框架的核心。所有的事件都会触发reactor,然后他会开启服务,初始化factory,factory再初始化protocol。
dnmap_server:
开头用了try except来判断有没有类
用twisted 弄异步分布式扫描.
client_id.是每一个节点(nmap)
timeout_idle_clients检查连接的客户端是否超时
read_file_and_fill_nmap_variable读取文件里面;(就是命令指令?)(task.LoopingCall)
ServerContextFactory(SSL证书)
show_info (task.LoopingCall)
send_one_more_command (包含在process_input_line这个函数里)
process_input_line (包含在NmapServerProtocol里面的一个函数)
NmapServerProtocol (factory.protocol)
process_nmap_commands (main函数里面运行)
factory = Factory()
factory.protocol = NmapServerProtocol
# Create the time based print
loop = task.LoopingCall(show_info) #异步
loop.start(5.0) # call every second
# Create the time based file read
loop2 = task.LoopingCall(read_file_and_fill_nmap_variable)
loop2.start(30.0) # call every second
# To mark idel clients as hold
loop3 = task.LoopingCall(timeout_idle_clients)
loop3.start(client_timeout) # call every second
# Create the reactor
reactor.listenSSL(port, factory, ServerContextFactory())
reactor.run()
Reactor:是管理twisted框架的核心。所有的事件都会触发reactor,然后他会开启服务,初始化factory,factory再初始化protocol。dnmap_client:
check_clean
NmapClient(protocol)
NmapClientFactory(factory)
process_commands
reactor.connectSSL(str(server_ip), int(server_port), factory, ssl.ClientContextFactory())
Reactor:是管理twisted框架的核心。所有的事件都会触发reactor,然后他会开启服务,初始化factory,factory再初始化protocol。本文标题:DNMAP-探索twisted的秘密
本文链接:https://blog.quwenai.cn/post/959.html
版权声明:本文不使用任何协议授权,您可以任何形式自由转载或使用。






还没有评论,来说两句吧...