<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      基于python-nmap的掃描代碼

      本次代碼只利于人員進行分析,小學期作業,被迫工作。

       

       

       

        1 import tkinter
        2 from tkinter import *
        3 import time
        4 import nmap
        5 import psutil
        6 LOG_LINE_NUM = 0
        7 import psutil
        8 import datetime
        9 import time
       10 import socket
       11 import uuid
       12 #import geoip2.database
       13 import dns.resolver
       14 class MY_GUI():
       15     def __init__(self, init_window_name):
       16         self.init_window_name = init_window_name
       17 
       18     def set_int_DS(self):
       19         DS= Tk()
       20         DS.geometry('400x400')
       21         DS.title('域名')
       22         DS_data_Text = Text(DS, width=150, height=49)  # 處理結果展示
       23         DS_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)
       24         res = dns.resolver.query('testfire.net', 'NS')
       25         DS_data_Text.insert(END,'本次解析域名為testfire.net')
       26         for item in res.response.answer:
       27             DS_data_Text.insert(END,item)
       28         DS.mainloop()
       29 
       30     def set_init_zisao(self):
       31         show= Tk()  # 實例化出一個父窗口
       32         show.geometry('1400x700')
       33         # 設置根窗口默認屬性
       34         show.title('頁面')
       35         #page=tkinter.Frame(show)
       36         result_data_Text = Text(show, width=700, height=49)  # 處理結果展示
       37         result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)
       38         #result_data_Text.insert(END, 'a_' + str(i))
       39         now_time = time.strftime('%Y-%m-%d-%H:%M:%S'+'\n', time.localtime(time.time()))
       40         result_data_Text.insert(END,now_time)
       41         # 系統啟動時間
       42         result_data_Text.insert(END,"系統啟動時間: %s" % datetime.datetime.fromtimestamp(psutil.boot_time()).strftime("%Y-%m-%d %H:%M:%S"+'\n'))
       43         # 系統用戶
       44         users_count = len(psutil.users())
       45         users_list = ",".join([u.name for u in psutil.users()])
       46         result_data_Text.insert(END,"當前有%s個用戶,分別是 %s" % (users_count, users_list)+'\n')
       47         #result_data_Text.insert(END,'-----------------------------cpu信息---------------------------------------')
       48         # 查看cpu物理個數的信息
       49         result_data_Text.insert(END,"物理CPU個數: %s" % psutil.cpu_count(logical=False)+'\n')
       50         result_data_Text.insert(END,"邏輯CPU個數: %s" % psutil.cpu_count(logical=True)+'\n')
       51         result_data_Text.insert(END,"CPU核心總數: %s" % psutil.cpu_count()+'\n')
       52         # CPU的使用率
       53         cpu = (str(psutil.cpu_percent(1))) + '%'
       54         result_data_Text.insert(END,"cup使用率: %s" % cpu+'\n')
       55         #result_data_Text.insert(END,'-----------------------------mem信息---------------------------------------')
       56         # 查看內存信息,剩余內存.free  總共.total
       57         # round()函數方法為返回浮點數x的四舍五入值。
       58         free = str(round(psutil.virtual_memory().free / (1024.0 * 1024.0 * 1024.0), 2))
       59         total = str(round(psutil.virtual_memory().total / (1024.0 * 1024.0 * 1024.0), 2))
       60         memory = int(psutil.virtual_memory().total - psutil.virtual_memory().free) / float(
       61             psutil.virtual_memory().total)
       62         swap_free = str(round(psutil.swap_memory().free / (1024.0 * 1024.0 * 1024.0), 2))
       63         swap_total = str(round(psutil.swap_memory().total / (1024.0 * 1024.0 * 1024.0), 2))
       64         swap_memory = int(psutil.swap_memory().total - psutil.swap_memory().free) / float(psutil.swap_memory().total)
       65         result_data_Text.insert(END,"物理內存: %s G" % total+'\n')
       66         result_data_Text.insert(END,"剩余物理內存: %s G" % free+'\n')
       67         result_data_Text.insert(END,"物理內存使用率: %s %%" % int(memory * 100)+'\n')
       68         result_data_Text.insert(END,"交換內存: %s G" % swap_total+'\n')
       69         result_data_Text.insert(END,"剩余交換內存: %s G" % swap_free+'\n')
       70         result_data_Text.insert(END,"交換內存使用率: %s %%" % int(swap_memory * 100)+'\n')
       71         #result_data_Text.insert(END,'-----------------------------網絡信息---------------------------------------')
       72         # 網卡,可以得到網卡屬性,連接數,當前流量等信息
       73         hostname = socket.gethostname()  # 獲取本機主機名
       74         ip = socket.gethostbyname(hostname)  # 獲取本機ip地址
       75         mac = uuid.UUID(int=uuid.getnode()).hex[-12:]
       76         mac = ":".join([mac[e:e + 2] for e in range(0, 11, 2)])
       77         net = psutil.net_io_counters()
       78         bytes_sent = '{0:.2f} Mb'.format(net.bytes_recv / 1024 / 1024)
       79         bytes_rcvd = '{0:.2f} Mb'.format(net.bytes_sent / 1024 / 1024)
       80         result_data_Text.insert(END,"主機名稱為:"+'\n', hostname)
       81         result_data_Text.insert(END,"IP地址為:"+'\n', ip)
       82         result_data_Text.insert(END,"MAC地址:"+'\n', mac)
       83         result_data_Text.insert(END,"網卡接收流量 %s 網卡發送流量 %s" % (bytes_rcvd, bytes_sent)+'\n')
       84 
       85         #result_data_Text.insert(END,'-----------------------------磁盤信息---------------------------------------')
       86         io = psutil.disk_partitions()
       87         # print("系統磁盤信息:" + str(io))
       88         o = psutil.disk_usage("/")
       89         ioo = psutil.disk_io_counters()
       90         result_data_Text.insert(END,ioo)
       91         result_data_Text.insert(END,"盤總容量:" + str(int(o.total / (1024.0 * 1024.0 * 1024.0))) + "G"+'\n')
       92         result_data_Text.insert(END,"已用容量:" + str(int(o.used / (1024.0 * 1024.0 * 1024.0))) + "G"+'\n')
       93         result_data_Text.insert(END,"可用容量:" + str(int(o.free / (1024.0 * 1024.0 * 1024.0))) + "G"+'\n')
       94 
       95         #result_data_Text.insert(END,'-----------------------------進程信息-------------------------------------')
       96         # 查看系統全部進程
       97         for pnum in psutil.pids():
       98             p = psutil.Process(pnum)
       99             result_data_Text.insert(END,"進程名 %-20s  內存利用率 %-18s 進程狀態 %-10s 創建時間 %-10s " \
      100                   % (p.name(), p.memory_percent(), p.status(), p.create_time())+'\n')
      101         #page.pack()
      102         show.mainloop()
      103 
      104     def set_init_saomiao(self):
      105         nm = nmap.PortScanner()
      106         if not self.init_data_Text.get  is NONE:
      107             ret = nm.scan(self.init_data_Text.get(1.0, END).strip().replace("\n", ""), '20-1000')  # 220.181.38.148/24
      108             # self.result_data_Text.insert(1.0, ret)
      109             for host in nm.all_hosts():  # 返回被掃描的主機列表給host
      110                 self.result_data_Text.insert(END,'Host : %s (%s)' % (host, nm[host].hostname())+'\n')  # nm[host].hostname()獲取目標主機的主機名
      111                 self.result_data_Text.insert(END,'State : %s' % nm[host].state()+'\n')  # nm[host].state()獲取主機的狀態  |up|down|unknow|skipped|
      112                 for proto in nm[host].all_protocols():  # nm[host].all_protocols獲取執行的協議['tcp','udp']
      113                     #print('-----------------------------------------------------')
      114                     self.result_data_Text.insert(END,'protocol : %s' % proto+'\n')  # 輸出執行的協議
      115                     lport = nm[host][proto].keys()  # 獲取目標主機所開放的端口賦值給lport
      116                     # lport.sort()
      117                     #print('')
      118                     for port in lport:  # 將lport賦值給port并遍歷
      119                         self.result_data_Text.insert(END,'port : %s\tstate : %s' % (port, nm[host][proto][port]['state']+'\n'))  # 輸出掃描結果
      120             self.result_data_Text.insert(END, ret)
      121             self.write_log_to_Text("INFO:str_trans_to_md5 success")
      122 
      123     # 設置窗口
      124     def set_init_window(self):
      125         self.init_window_name.title("掃描器")  # 窗口名
      126         # self.init_window_name.geometry('320x160+10+10')                         #290 160為窗口大小,+10 +10 定義窗口彈出時的默認展示位置
      127         self.init_window_name.geometry('1300x800')
      128         # self.init_window_name["bg"] = "pink"                                    #窗口背景色,其他背景色見:blog.csdn.net/chl0000/article/details/7657887
      129         # self.init_window_name.attributes("-alpha",0.9)                          #虛化,值越小虛化程度越高
      130         # 標簽
      131         self.init_data_label = Label(self.init_window_name, text="請輸入IP")
      132         self.init_data_label.grid(row=0, column=0)
      133         self.result_data_label = Label(self.init_window_name, text="掃描結果")
      134         self.result_data_label.grid(row=0, column=12)
      135         self.log_label = Label(self.init_window_name, text="日志")
      136         self.log_label.grid(row=12, column=0)
      137         # 文本框
      138         self.init_data_Text = Text(self.init_window_name, width=67, height=15)  # 原始數據錄入框
      139         self.init_data_Text.grid(row=1, column=0, rowspan=10, columnspan=10)
      140         self.result_data_Text = Text(self.init_window_name, width=70, height=49)  # 處理結果展示
      141         self.result_data_Text.grid(row=1, column=12, rowspan=15, columnspan=10)
      142         self.log_data_Text = Text(self.init_window_name, width=66, height=9)  # 日志框
      143         self.log_data_Text.grid(row=13, column=0, columnspan=10)
      144         # 按鈕
      145         self.str_trans_to_md5_button = Button(self.init_window_name, text="掃描開始", bg="lightblue", width=10,command=self.set_init_saomiao)  # 調用內部方法  加()為直接調用
      146         self.str_trans_to_md5_button.grid(row=1, column=11)
      147         self.str_trans_to_md1_button = Button(self.init_window_name, text="自掃", bg="lightblue", width=10,command=self.set_init_zisao)  # 調用內部方法  加()為直接調用
      148         self.str_trans_to_md1_button.grid(row=10, column=11)
      149         self.str_trans_to_md2_button = Button(self.init_window_name, text="域名", bg="lightblue", width=10,command=self.set_int_DS)  # 調用內部方法  加()為直接調用
      150         self.str_trans_to_md2_button.grid(row=5, column=11)
      151 
      152     # 獲取當前時間
      153     def get_current_time(self):
      154         current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
      155         return current_time
      156 
      157     # 日志動態打印
      158     def write_log_to_Text(self, logmsg):
      159         global LOG_LINE_NUM
      160         current_time = self.get_current_time()
      161         logmsg_in = str(current_time) + " " + str(logmsg) + "\n"  # 換行
      162         if LOG_LINE_NUM <= 7:
      163             self.log_data_Text.insert(END, logmsg_in)
      164             LOG_LINE_NUM = LOG_LINE_NUM + 1
      165         else:
      166             self.log_data_Text.delete(1.0, 2.0)
      167             self.log_data_Text.insert(END, logmsg_in)
      168 
      169 
      170 def gui_start():
      171     init_window = Tk()  # 實例化出一個父窗口
      172     ZMJ_PORTAL = MY_GUI(init_window)
      173     # 設置根窗口默認屬性
      174     ZMJ_PORTAL.set_init_window()
      175 
      176     init_window.mainloop()  # 父窗口進入事件循環,可以理解為保持窗口運行,否則界面不展示
      177 
      178 
      179 gui_start()

       

       自掃

       

       

       

       有助思考,以及后面的參考。

      posted @ 2022-07-11 22:36  一刀滅bug  Views(238)  Comments(0)    收藏  舉報
      主站蜘蛛池模板: 国产午夜精品福利免费不| 亚洲永久一区二区三区在线| 国产日产免费高清欧美一区| 国产精品一区二区三区四区| 国产91麻豆精品成人区| 国产精品有码在线观看| √天堂资源地址在线官网| 国产成人精品区一区二区| 日韩在线视频观看免费网站| 亚洲一区二区三区在线观看精品中文| 亚洲中文字幕人成影院| 国产精品午夜福利91| 亚洲欧美偷国产日韩| 精品中文人妻中文字幕| 日本福利一区二区精品| 国产视频有码字幕一区二区| 久久国产成人午夜av影院| 国产女高清在线看免费观看| 国产午夜精品一区理论片| 亚洲少妇人妻无码视频| 无码AV无码免费一区二区| 亚洲午夜无码久久久久蜜臀av| 国产一区二区三区激情视频| 国产综合精品一区二区三区| 国产精品久久久一区二区三区 | 亚洲一区二区精品极品| 亚洲人成网线在线播放VA| 一区二区三区综合在线视频| 白嫩少妇bbw撒尿视频| 少妇太爽了在线观看免费视频| 国产无遮挡又黄又爽又色| 九九热在线精品视频观看| 国产欧美日韩亚洲一区二区三区 | 亚洲国产另类久久久精品黑人 | 亚洲熟妇自偷自拍另类| 日本久久99成人网站| 国产自拍偷拍视频在线观看| 非会员区试看120秒6次| 免费成人网一区二区天堂| 永久黄网站色视频免费直播| 97成人碰碰久久人人超级碰oo|