{"id":2380,"date":"2022-12-10T10:06:21","date_gmt":"2022-12-10T02:06:21","guid":{"rendered":"https:\/\/qaqaq.top\/?p=2380"},"modified":"2023-01-10T22:07:39","modified_gmt":"2023-01-10T14:07:39","slug":"python-tkinter-%e7%ab%af%e5%8f%a3%e6%89%ab%e6%8f%8f%e7%a8%8b%e5%ba%8f","status":"publish","type":"post","link":"https:\/\/qaqaq.top\/?p=2380","title":{"rendered":"python tkinter \u7aef\u53e3\u626b\u63cf\u7a0b\u5e8f"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/qaqaq.top\/wp-content\/uploads\/2023\/01\/image-221-1024x416.png'><img class=\"lazyload lazyload-style-1\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"416\" data-original=\"https:\/\/qaqaq.top\/wp-content\/uploads\/2023\/01\/image-221-1024x416.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"\" class=\"wp-image-3538\"  sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/div><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>import socket\nimport tkinter.messagebox\nfrom tkinter import *\n\n\nclass portScan:\n    def __init__(self):\n        window = Tk()\n        window.title(\"\u7aef\u53e3\u626b\u63cf\")\n\n        frame = Frame(window)\n        frame.pack()\n\n        Label(frame, text=\"IP\u5730\u5740\u3001\u57df\u540d :\").grid(row=1, column=1, sticky=E)\n        self.ipName = StringVar()\n        Entry(frame, textvariable=self.ipName).grid(row=1, column=2)\n\n        Label(frame, text=\"\u8d77\u59cb\u7aef\u53e3\uff08\u6700\u5c0f\u4e3a1\uff09:\").grid(row=2, column=1, sticky=E)\n        self.startPort = IntVar()\n        Entry(frame, textvariable=self.startPort).grid(row=2, column=2)\n\n        Label(frame, text=\"\u7ed3\u675f\u7aef\u53e3\uff08\u6700\u5927\u4e3a65535\uff09:\").grid(row=3, column=1, sticky=E)\n        self.endPort = IntVar()\n        Entry(frame, textvariable=self.endPort).grid(row=3, column=2)\n\n        Button(frame, text=\"\u626b\u63cf\", command=self.getPortScan).grid(row=4, column=1, sticky=E)\n\n        self.text = Text(window)\n        self.text.pack()\n\n        window.mainloop()\n\n    def getPortScan(self):\n        try:\n            if (self.startPort.get() &lt; 0 or self.endPort.get() &gt; 65535):\n                tkinter.messagebox.showerror(\"error\", \"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u7aef\u53e3\u53f7\uff01\")\n            elif (self.startPort.get() &gt; self.endPort.get()):\n                tkinter.messagebox.showerror(\"error\", \"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u7aef\u53e3\u53f7\uff01\")\n            else:\n                self.text.delete(\"1.0\", \"end\")\n                for port in range(self.startPort.get(), self.endPort.get() + 1):\n                    try:\n                        s = socket.socket()\n                        s.settimeout(1)\n                        s.connect((str(self.ipName.get()), int(port)))\n                        self.text.insert(END, self.ipName.get() + \":\" + str(port) + \"\u5df2\u5f00\u653e\\n\")\n                    except socket.error:\n                        self.text.insert(END, self.ipName.get() + \":\" + str(port) + \"\u672a\u5f00\u653e\\n\")\n                    finally:\n                        s.close()\n                self.text.insert(END, \"\u626b\u63cf\u5b8c\u6210\")\n        except tkinter.TclError:\n            tkinter.messagebox.showerror(\"error\", \"\u8bf7\u8f93\u5165\u6b63\u786e\u7684\u7aef\u53e3\u53f7\uff01\")\n\n\nportScan()\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[65],"tags":[50],"class_list":["post-2380","post","type-post","status-publish","format-standard","hentry","category-python-code","tag-python"],"_links":{"self":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2380"}],"collection":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2380"}],"version-history":[{"count":2,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2380\/revisions"}],"predecessor-version":[{"id":3539,"href":"https:\/\/qaqaq.top\/index.php?rest_route=\/wp\/v2\/posts\/2380\/revisions\/3539"}],"wp:attachment":[{"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/qaqaq.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}