zoukankan      html  css  js  c++  java
  • windows_dnat_mapping_with_python

    #coding: utf-8
    import os
    import re
    
    def execute_cmd(cmd):
        out = os.popen(cmd)
        return out.read()
    
    def dnat_list():
        cmd = 'netsh interface portproxy show all'
        mapping = execute_cmd(cmd)
        dnat_rules = []
        for rule in mapping.split('
    '):
            if '0.0.0.0' in rule:
                print(rule)
                dnat_rules.append(re.split(r'[ ]+', rule))
        return dnat_rules
    
    def dnat_create(listen, connect_to):
        print('adding rule: {} -> {}'.format(listen, connect_to))
        listenaddress, listenport = listen.split(':')
        connectaddress, connectport = connect_to.split(':')
        if not listenaddress:
            listenaddress = '0.0.0.0'
        cmd = 'netsh interface portproxy add v4tov4 listenaddress={} listenport={} connectaddress={} connectport={}'.format(listenaddress, listenport, connectaddress, connectport)
        print('execute: {}'.format(cmd))
        execute_cmd(cmd)
        return dnat_list()
    
    def dnat_delete(listen):
        print('del rule: {}'.format(listen))
        listenaddress, listenport = listen.split(':')
        if not listenaddress:
            listenaddress = '0.0.0.0'
        cmd = 'netsh interface portproxy delete v4tov4 listenaddress={} listenport={}'.format(listenaddress, listenport)
        print('execute: {}'.format(cmd))
        execute_cmd(cmd)
        return dnat_list()
    
    if __name__ == "__main__":
        print (dnat_list())
        print dnat_create(':8080', '1.2.3.4:80')
        print dnat_delete(':8080')
    
    
  • 相关阅读:
    codeforces 652B z-sort(思维)
    poj 3268 Silver Cow Party(最短路)
    POJ 2243:Knight Moves(BFS)
    POJ 1107:W's Cipher(模拟)
    POJ 1008 Maya Calendar(模拟)
    Hdu3436-Queue-jumpers(伸展树)
    主席树的另一种写法
    Hdu5785-Interesting(回文串处理)
    Hdu5008-Boring String Problem(后缀数组)
    RMQ模板
  • 原文地址:https://www.cnblogs.com/sixloop/p/windows_dnat_mapping_with_python.html
Copyright © 2011-2022 走看看