首页 > 其他分享 >批量设置默认网关和DNS

批量设置默认网关和DNS

时间:2023-12-27 13:47:23浏览次数:28  
标签:std __ 网关 string CmdExc 默认 str DNS buf

环境:VS2022

配置:使用Release版本输出的exe,否则在使用时会提示少dll

代码:

#ifndef CMDEXC_H
#define CMDEXC_H

#include <cstring>
#include<cstdio>
#include<iostream>
#include <regex>
#include <iostream>
using namespace std;


class CmdExc
{
public:
    CmdExc(std::string cmd, std::string mode = "rt");
    virtual ~CmdExc();

    std::string getOutput() const;

private:
    std::string m_strOutput__;
    FILE* m_fp__;
};



CmdExc::CmdExc(std::string cmd, std::string mode)
{
    m_fp__ = _popen(cmd.c_str(), mode.c_str());
    char buf[256] = { 0 };
    if (NULL != m_fp__) {
        int read_len;
        while ((read_len = fread(buf, sizeof(buf) - 1, 1, m_fp__)) > 0) {
            m_strOutput__ += buf;
            memset(buf, 0, sizeof(buf));
        }
    }

}

CmdExc::~CmdExc()
{
    if (NULL != m_fp__) {
        _pclose(m_fp__);
    }
}

std::string CmdExc::getOutput() const
{
    return m_strOutput__;
}

#endif // CMDEXC_H

std::string extractIP(const std::string& text) {
    std::regex ipRegex("(\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3})");
    std::smatch match;

    if (std::regex_search(text, match, ipRegex)) {
        return match.str();
    }
    else {
        return "No IP found";
    }
}

int main() {

    printf("正在设置默认网关和DNS....\n");
    CmdExc cmd("ipconfig");
    string text = cmd.getOutput().c_str();
    string ip = extractIP(text);
    string command = "netsh interface ip set address \"以太网 3\" source=static address=" + ip+" 255.255.224.0 gateway=192.168.0.2";
    system(command.c_str());
    command = "netsh interface ip set dnsservers \"以太网 3\" static 223.5.5.5 primary no";
    system(command.c_str());
    printf("设置成功\n");
    system("pause");
    
}

 

标签:std,__,网关,string,CmdExc,默认,str,DNS,buf
From: https://www.cnblogs.com/railgunRG/p/17930365.html

相关文章

  • docker 启用ipv4,默认只有ipv6
    方法一在服务器上禁用IPv6使用vim打开/etc/default/grub在第6行中增加ipv6.disable=1例如:复制代码GRUB_CMDLINE_LINUX="ipv6.disable=1..."重新配置grub并重启服务器复制代码$grub2-mkconfig-o/boot/grub2/grub.cfg$reboot等到服务器重启完成后,我们再次使......
  • 亿级并发,API网关等核心组件,如何设计?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • [网关] 网关之(1)基础概念
    1基础概念1.1网关(gateway)网关其实是一个服务器,扮演着代表其他服务器为客户端提供服务的中间者。与代理(proxy)不同,网关接收请求,仿佛它就是请求资源的源服务器。请求的客户端可能觉察不到它正在同网关通信。1.2上游(upstream)=>网关=>下游(downstream)=>Client所有......
  • Modbus转Profinet网关解决设备通讯不稳的问题
    Modbus转Profinet网关解决设备通讯不稳的问题通讯不稳定:表现为数据断断续续,多半是由于线路干扰、接口不匹配、程序不稳定、等原因造成。解决方案:在原配电柜添加Modbus转Profinet网关(XD-MDPN100/2000)即可解决通迅该问题,Modbus转Profinet网关(XD-MDPN100/2000)具有抗干扰功能,采用映射......
  • 如何配置双网关/双网卡
    #1.前期准备1)两个网卡都需要正确设置,包括各自默认网关(注意,两个网卡都需要设定网关)  网卡配置文件在/etc/sysconfig/network-scripts/目录下,需要正确设置两个网卡的配置文件,然后重新启用新配置。2)两个网卡都已正确接入到两路线路,并且两路网络的服务供应商都已正常提供服务#2.......
  • 浅聊SpringCloud的网关
    为什么要设计网关?上网搜罗了一下,觉得别人说的挺好,就引用了一下,在使用微服务的时候,不同的功能业务会集成一个服务群,而网关是基于服务群上的一个服务层,也是单独暴露给客户端的APIs。客户端对微服务的依赖直接使重构服务变得困难。一种直观的方法是将这些服务隐藏在一个新的服务层后面......
  • Cisco Expressway Release X15.0.0 - 统一通信网关
    CiscoExpresswayReleaseX15.0.0-统一通信网关Expressway&ExpresswaySelect请访问原文链接:https://sysin.org/blog/cisco-expressway-15/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgCiscoExpressway系列让协作变得更简单CiscoExpressway可在保证......
  • linux-DNS服务器
    一、1、理解区域(zone)DNS的每一个区域都是一个域---一个区域可以管辖多个子域、2、解析正向解析:通过域名解析出ip地址反向解析:根据ip地址解析出dns名称解析过程客户端dns(host文件)本地dns区域dns服务器缓存3、部署dns服务器一般使用传统BIND软件包或者unbound、......
  • 基于5G智能网关的智慧塔吊监测方案
    塔吊是建筑施工中必不可少的设施,由于塔吊工作重心高、起重载荷大、人工视距/视角受限等因素,也使得塔吊在工作过程中着较多的危险因素。对此,可以部署基于工业5G智能网关搭建智慧塔吊安全监测系统,实现对塔吊运行的全局精细监测感知、智能控制和风险防范等,从而提高塔吊施工的总体效率......
  • 通杀?海康威视安全接入网关任意文件读取漏洞
    声明:本文提供的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,如用于其他用途,由使用者承担全部法律及连带责任,与工具作者和本公众号无关。    背景海康威视安全接入网关使用jquery-1.7.2JavaScript......