在windows系统上自动安装dig命令脚本
本文最后更新于 408 天前,其中的信息可能已经有所发展或是发生改变。
dig命令

Linux底下有一个比nklooup好用而且不知道强大多少倍的命令————dig
通过 dig 我们很容易发现在dns查询过程中发生的事,如下图:具体的大家可以自己搜索
但是这个命令在Linux下面才有的,我找到了网上的一些资源,windows底下也可以有安装,但是安装起来比较麻烦,对于我这种人来说根本不想动这个手(在很多台机子上),与使用熟悉的Python写一个脚本自动安装,以后走哪里带上就行了。
我上面那幅图片就是win下截得
Python源码如下:

# Author:[email protected]
# Install dig command on Windows.
# Please run this program in Administrator mode.
import platform,os,threading,zipfile
from time import sleep
from ftplib import *
class rock_Down(threading.Thread):
    def __init__(self,threadName,fileopen,connect):
        threading.Thread.__init__(self,name=threadName)
        self.fileopen = fileopen
        self.connect = connect
    def run(self):
        self.connect.retrbinary(('RETR '+link),self.fileopen.write,1024)
        self.fileopen.close()
def download(sys_num):
    global link
    if sys_num == '32bit':
        link = "BIND9.9.7.x86.zip"
    else:
        link = "BIND9.9.7.x64.zip"
    print ("Connecting Server ......")
    try:
        connect = FTP('ftp.isc.org','anonymous','guiqiqi')
    except:
        print ("Faliure Connect Server, Plese Check your Internet Connection!")
    else:
        print ("Connect Server Succed")
    try:
        connect.cwd("/isc/bind9/9.9.7/")
        size_all = connect.size(link)
        fileopen = open(link,'wb')
        thread_down = rock_Down("download_Print",fileopen,connect)
        thread_down.setDaemon(True)
        print ("Start downloading......")
        thread_down.start()
        while True:
            get_size = os.path.getsize(link)
            if (get_size == size_all):
                break
            print ("Download: " + (str(round((get_size/size_all)*100,1))) + "%",end="\r")
            sleep(1)
        thread_down.join()
        print ('Download Succed, Installing......',end="\n")
        install(sys_num)
    finally:
        connect.quit()
def install(sys_num):
    link = "BIND9.9.7.x86.zip"
    link = zipfile.ZipFile(link)
    move_list = ['dig.exe','host.exe','libbind9.dll','libdns.dll',
    'libeay32.dll','libisc.dll','libisccfg.dll','liblwres.dll','libxml2.dll']
    try:
        for file in move_list:
            link.extract(file,r'C:\\Windows\\System32\\')
    except:
        input ("Plese allow this script run with Administrator Permission in UAC!")
    else:
        input ("Install Succed! Enter to exit!")
if __name__ == "__main__":
    global sys_num
    sys_num = platform.architecture()[0]
    if (sys_num != '32bit' and sys_num != '64bit'):
        raise Exception('Unkown System Num')
    else:
        download(sys_num)

由于后期处理py2exe的时候对于中文的支持太过差劲,我把整个改成英文了
这个程序在编译的时候,需要在Py2exe中设置UAC权限相关(因为要给system32底下拷贝文件)

py2exe的安装配置脚本

from distutils.core import setup
import py2exe
options = {"py2exe":  
{"compressed": 1, 
"optimize": 2,  
"bundle_files": 1,
'packages': ['ctypes']
}}
windows = [
    {
    "script": "D:\\install_dig.py",
    "uac_info": "requireAdministrator"
    }
]
setup(
    options = options,       
    zipfile=None,  
    console=["D:\\install_dig.py"],
    windows=windows
)

这个脚本的exe文件我上传到了百度云盘,下载地址
记住运行时一定要给予UAC中的Administrator权限。

暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇