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

news2024/12/20 4:24:22
# -*- 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)

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip

redis集群 服务器更换ip,怎么办,怎么更换redis集群的ip 1、安装redis三主三从集群2、正常状态的redis集群3、更改redis集群服务器的ip 重启服务器 集群会down4、更改redis集群服务器的ip 重启服务器 集群down的原因5、更改redis集群服务器的ip后&#xf…

Linux入门攻坚——42、Nginx及web站点架构模式

对于lvs集群,是一个四层路由的集群,Director无需启用对端口的监控,直接将报文转发给后端业务服务器RealServer。 使用Nginx也可以实现集群功能,Nginx实现反向代理,实现的是七层上的转发,要求Nginx本身就是…

Git merge 和 rebase的区别(附图)

在 Git 中,merge 和 rebase 是两种用于整合分支变化的方法。虽然它们都可以将一个分支的更改引入到另一个分支中,但它们的工作方式和结果是不同的。以下是对这两者的详细解释: Git Merge 功能:合并分支,将两个分支的…

密码编码学与网络安全(第五版)答案

通过如下代码分别统计一个字符的频率和三个字符的频率,"8"——"e",“;48”——“the”,英文字母的相对使用频率,猜测频率比较高的依此为),t,*,5,分别对应s,o,n,…

我在广州学 Mysql 系列之 数据类型和运算符详解

ℹ️大家好,我是😆练小杰,今天主要学习 Mysql的数据类型以及运算符操作~~ 上周五学习了“Mysql 系列之 数据“表”的基本操作”~ 想要了解更多🈶️MYSQL 数据库的命令行总结!!! “我是你的敌人,…

SpringBoot中基于JWt的授权与续期方案

一、 SpringBoot中Token登录授权、续期和终止的方案RedisToken SpringBoot项目写登录注册之类的方案 使用Cookie或Session的话,它是有状态的,不符合分布式技术架构使用Security或者Shiro框架实现起来比较复杂,一般项目无需用那么复杂使用JW…

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

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

【OSS】php使用oss存储

阿里云oss官方文档:文档 1、前期工作 创建阿里云账号,登录创建bucket,注意修改权限,要不然可能读取不到 申请accessKeyId和accessKeySecret accessKey 2、项目中安装OSS扩展 composer require aliyuncs/oss-sdk-php3、基础使…

Elasticsearch02-安装7.x

零、文章目录 Elasticsearch02-安装7.x 1、Windows安装Elasticsearch (1)JDK安装 Elasticsearch是基于java开发的,所以需要安装JDK。我们安装的Elasticsearch版本是7.15,对应JDK至少1.8版本以上。也可以不安装jdk,…

【Qt】drawText字体大小问题探究

背景 软件的一个功能是: 打开图片在图片上绘制序号,序号的样式是圆圈内包含数字将带有序号的图片打印出来 实现思路也很简单,在屏幕上显示时重写paintEvent函数,利用QPainter完成图片和序号的绘制。打印时只需要将QPainter对应…

redis 缓存使用

工具类 package org.springblade.questionnaire.redis;import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factor…

C# OpenCvSharp DNN 实现百度网盘AI大赛-表格检测第2名方案第一部分-表格边界框检测

目录 说明 效果 模型 项目 代码 frmMain.cs YoloDet.cs 参考 下载 其他 说明 百度网盘AI大赛-表格检测的第2名方案。 该算法包含表格边界框检测、表格分割和表格方向识别三个部分,首先,ppyoloe-plus-x 对边界框进行预测,并对置信…

创建项目以及本地仓库和远程仓库并上传项目

创建项目以及本地仓库和远程仓库并上传项目 其详细流程如下: 1、本地创建项目 2、创建本地仓库(若使用idea在创建项目时选择了创建.git本地仓库,则此步骤省略) 进入到你需要上传的项目的目录下,右键找到Git Bah He…

鸿蒙操作系统简介

华为鸿蒙系统(HUAWEI HarmonyOS),是华为公司于2019年8月9日在东莞举行的华为开发者大会(HDC.2019)上正式发布的面向全场景的分布式操作系统,可以创造一个超级虚拟终端互联的世界,将人、设备、场…

MySQL存储引擎-概述

存储引擎 存储引擎(Storage Engine)是数据库管理系统中负责数据存储和检索的部分。之前在MySQL的历史地位中曾经讲过,存储引擎是可插拔的。5.5之前默认采用MyISAM存储引擎,从5.5开始采用InnoDB存储引擎。 9大存储引擎 可以通过…

【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析

【网络取证篇】取证实战之PHP服务器镜像网站重构及绕密分析 在裸聊敲诈、虚假理财诈骗案件类型中,犯罪分子为了能实现更低成本、更快部署应用的目的,其服务器架构多为常见的初始化网站架构,也称为站库同体服务器!也就是说网站应用…

【数据结构进阶】AVL树深度剖析 + 实现(附源码)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:数据结构 目录 前言 一、AVL树的概念 二、AVL树底层解析及实现 1. 节点的定义 2. 接口声明 3. AVL树的插入 3.1 更新平衡因子 3.2 旋转(重点…

java_断点调试(debug)

按照如下配置好后,即可点击“F7”,进入相应的方法,查看源码 package com.hspedu.debug_;//debug对象创建的过程,加深对调试的理解 public class Debug01 {public static void main(String[] args) {//创建对象的流程//(1&#xff…

YOLOv11融合[CVPR2024]Starnet中的star block特征提取模块

YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《Rewrite the Stars》 一、 模块介绍 论文链接:https://arxiv.org/abs/2403.19967 代码链接:https://github.com/ma-xu/Rewri…

【kubernetes】k8s集群的简述与搭建

简述 Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序 关键特性 自动化部署和回滚:Kubernetes 可以自动化地部署和回滚应用程序,确保应用程序始终处于预期的状态。服务发现…