windows 使用python共享网络给另外一个网卡

# -*- coding: utf-8 -*-
import subprocess

def open_share(to_shared_adapter, from_shared_adapter):
    """
    打开以太网的网络共享
    :return: None
    """
    powershell_script = f"""
    # Register the HNetCfg library (once)
    # regsvr32 hnetcfg.dll

    # Create a NetSharingManager object
    $m = New-Object -ComObject HNetCfg.HNetShare

    # List connections
    $m.EnumEveryConnection |% {{ $m.NetConnectionProps.Invoke($_) }}

    # Find connection
    $c = $m.EnumEveryConnection |? {{ $m.NetConnectionProps.Invoke($_).Name -eq "{to_shared_adapter}" }}
    $c2 = $m.EnumEveryConnection |? {{ $m.NetConnectionProps.Invoke($_).Name -eq "{from_shared_adapter}" }}

    # Get sharing configuration
    $config = $m.INetSharingConfigurationForINetConnection.Invoke($c)
    $config2 = $m.INetSharingConfigurationForINetConnection.Invoke($c2)

    # See if sharing is enabled
    Write-Output $config.SharingEnabled
    Write-Output $config2.SharingEnabled

    # See the role of connection in sharing
    # 0 - public, 1 - private
    # Only meaningful if SharingEnabled is True

    Write-Output $config.SharingType
    Write-Output $config2.SharingType

    $config.EnableSharing(0)
    $config2.EnableSharing(1)
    """

    # 使用subprocess.Popen来执行PowerShell命令
    process = subprocess.Popen(
        ['powershell', '-Command', powershell_script],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True  # 使用text=True可以直接处理字符串,而不是bytes
    )

    # 等待命令执行完成
    stdout, stderr = process.communicate()


def close_share(to_shared_adapter, from_shared_adapter):
    """
    打开以太网的网络共享
    :return: None
    """
    powershell_script = f"""
    # Register the HNetCfg library (once)
    # regsvr32 hnetcfg.dll

    # Create a NetSharingManager object
    $m = New-Object -ComObject HNetCfg.HNetShare

    # List connections
    $m.EnumEveryConnection |% {{ $m.NetConnectionProps.Invoke($_) }}

    # Find connection
    $c = $m.EnumEveryConnection |? {{ $m.NetConnectionProps.Invoke($_).Name -eq "{to_shared_adapter}" }}
    $c2 = $m.EnumEveryConnection |? {{ $m.NetConnectionProps.Invoke($_).Name -eq "{from_shared_adapter}" }}

    # Get sharing configuration
    $config = $m.INetSharingConfigurationForINetConnection.Invoke($c)
    $config2 = $m.INetSharingConfigurationForINetConnection.Invoke($c2)

    # Enable sharing (0 - public, 1 - private)
    $config.DisableSharing()
    $config2.DisableSharing()
    """

    # 使用subprocess.Popen来执行PowerShell命令
    process = subprocess.Popen(
        ['powershell', '-Command', powershell_script],
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        text=True  # 使用text=True可以直接处理字符串,而不是bytes
    )

    # 等待命令执行完成
    stdout, stderr = process.communicate()

    # # 打印输出
    # print(stdout)
    #
    # # 如果有错误输出,打印错误信息
    # if stderr:
    #     print(stderr)

if __name__ == '__main__':
    # 共享与被共享的网络名
    to_shared_adapter = "以太网"
    from_shared_adapter = "以太网 7"
    # 开启共享
    open_share(to_shared_adapter, from_shared_adapter)
    close_share(to_shared_adapter, from_shared_adapter)

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/939187.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Elasticsearch入门到落地】4、Elasticsearch的安装

接上篇《3、es与mysql的概念对比》 上一篇我们学习了Elasticsearch与Mysql的概念与区别。本篇我们来进行Elasticsearch的环境准备及软件安装。 一、环境准备 如果我们没有自己的Linux服务器,且现在正在使用的是Windows操作系统的电脑,那么首先我们需要安…

小程序快速实现大模型聊天机器人

需求分析: 基于大模型,打造一个聊天机器人;使用开放API快速搭建,例如:讯飞星火;先实现UI展示,在接入API。 最终实现效果如下: 一.聊天机器人UI部分 1. 创建微信小程序&#xff0c…

Java反序列化漏洞分析

2015年11月6日FoxGlove Security安全团队的breenmachine 发布了一篇长博客,阐述了利用Java反序列化和Apache Commons Collections这一基础类库实现远程命令执行的真实案例,各大Java Web Server纷纷躺枪,这个漏洞横扫WebLogic、WebSphere、JBo…

前端项目部署方法

ngnix服务器部署 下载nignx,我下的是windows版本的 下载链接:[https://nginx.org/en/download.html](https://nginx.org/en/download.html) 解压文件 如果原本的80端口号被占用了,可以改为其他的端口号 可以点击nginx.exe文件启动nginx,它可能…

Reactor 响应式编程(第二篇:Spring Webflux)

系列文章目录 Reactor 响应式编程(第一篇:Reactor核心) Reactor 响应式编程(第二篇:Spring Webflux) Reactor 响应式编程(第三篇:R2DBC) Reactor 响应式编程&#xff08…

实验12 socket网络编程

设计程序 1.阅读TCP、UDP数据通信的例子8-2、8-7,理解并运行查看其功能。 2. 编写程序,使用socket网络接口函数,实现同一网段的两台主机的聊天。注:使用多线程,实现实时聊天功能。(使用UDP或TCP…

leetcode二叉搜索树部分笔记

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 二叉搜索树 1. 二叉搜索树的最小绝对差2. 二叉搜索树中第 K 小的元素3. 验证二叉搜索树 1. 二叉搜索树的最小绝对差 给你一个二叉搜索树的根节点 root ,返回 树中…

论文学习—VAE

VAE----Auto-Encoding Variational Bayes 2024年12月17日-2024年12月18日摘要引言方法例子:变分自动编码器 2024年12月17日-2024年12月18日 从今天开始,我准备记录自己学习的内容以此来检验我每天的学习量,菜鸡一枚,希望能够与大…

Go语言后台实现选中式导出excel文件

实现选中导出为excel文件的基本实现方案是前端将选中的数据传递给后端,后台接受这些数据生成excel文件的流,将流返回给前端并在响应体设置文件的格式。 这时只要将需要下载的数据提交到改接口就会返回文件流数据,提供下载。具体实现代码如下&…

大模型微调---Prompt-tuning微调

目录 一、前言二、Prompt-tuning实战2.1、下载模型到本地2.2、加载模型与数据集2.3、处理数据2.4、Prompt-tuning微调2.5、训练参数配置2.6、开始训练 三、模型评估四、完整训练代码 一、前言 Prompt-tuning通过修改输入文本的提示(Prompt)来引导模型生…

spring学习(spring-bean实例化(实现FactoryBean规范)(延迟实例化bean))

目录 一、spring容器实例化bean的几种方式。 (1)无参构造与有参构造方法。 (2)静态工厂与实例工厂。 (3)实现FactoryBean规范。 二、spring容器使用实现FactoryBean规范方式实现bean实例化。 (1…

【Java】mac安装Java17(JDK17)

文章目录 下载java17一、安装二、环境变量 下载java17 官网下载:https://www.oracle.com/java/technologies/downloads 提示:以下是本篇文章正文内容,下面案例可供参考 一、安装 直接安装后,安装完后目录会存放在下面目录下 /…

mysql免安装版配置教程

一、将压缩包解压至你想要放置的文件夹中,注意:绝对路径中要避免出现中文 二、在解压目录下新建my.ini文件,已经有的就直接覆盖 my.ini文件内容 [mysqld] # 设置3306端口 port3306 # 设置mysql的安装目录 basedirD:\\tools\\mysql-8.1.0-win…

web:pc端企业微信登录-vue版

官方文档:developer.work.weixin.qq.com/document/pa… 不需要调用ww.register,直接调用ww.createWWLoginPanel即可创建企业微信登录面板 - 文档 - 企业微信开发者中心 (qq.com) 引入 //通过 npm 引入 npm install wecom/jssdk import * as ww from we…

基于Spring Boot的无可购物网站系统

一、系统背景与意义 随着互联网的快速发展,电子商务已经成为人们日常生活的重要组成部分。构建一个稳定、高效、可扩展的电商平台后端系统,对于满足用户需求、提升用户体验、推动业务发展具有重要意义。Spring Boot作为当前流行的Java开发框架&#xff…

YOLOv11改进,YOLOv11添加DLKA-Attention可变形大核注意力,WACV2024 ,二次创新C3k2结构

摘要 作者引入了一种称为可变形大核注意力 (D-LKA Attention) 的新方法来增强医学图像分割。这种方法使用大型卷积内核有效地捕获体积上下文,避免了过多的计算需求。D-LKA Attention 还受益于可变形卷积,以适应不同的数据模式。 理论介绍 大核卷积(Large Kernel Convolu…

fpga系列 HDL:Quartus II PLL (Phase-Locked Loop) IP核 (Quartus II 18.0)

在 Quartus II 中使用 PLL (Phase-Locked Loop) 模块来将输入时钟分频或倍频,并生成多个相位偏移或频率不同的时钟信号: 1. 生成 PLL 模块 在 Quartus II 中: 打开 IP Components。 file:///C:/intelFPGA_lite/18.0/quartus/common/help/w…

JAVA:代理模式(Proxy Pattern)的技术指南

1、简述 代理模式(Proxy Pattern)是一种结构型设计模式,用于为其他对象提供一种代理,以控制对这个对象的访问。通过代理模式,我们可以在不修改目标对象代码的情况下扩展功能,满足特定的需求。 设计模式样例:https://gitee.com/lhdxhl/design-pattern-example.git 2、什…

3D Gaussian Splatting for Real-Time Radiance Field Rendering-简洁版

1. 研究背景与问题 传统的3D场景表示方法,如网格和点云,适合GPU加速的光栅化操作,但缺乏灵活性。而基于神经辐射场(NeRF)的表示方式,尽管质量高,但需要高成本的训练和渲染时间。此外&#xff0…

Unity性能优化---使用SpriteAtlas创建图集进行批次优化

在日常游戏开发中,UI是不可缺少的模块,而在UI中又使用着大量的图片,特别是2D游戏还有很多精灵图片存在,如果不加以处理,会导致很高的Batches,影响性能。 比如如下的例子: Batches是9&#xff0…