C# 利用Powershell获取网络相关信息
利用Get-NetAdapter获取信息
Get-NetAdapter
参考链接:https://docs.microsoft.com/en-us/powershell/module/netadapter/get-netadapter?view=winserver2012r2-ps
显示的属性如下(表格形式):

根据文档描述,我们可以根据Name或者InterfaceDescription过滤出想要的那个适配器。
using (PowerShell powerShellInstance = PowerShell.Create())
{
powerShellInstance.AddCommand("Get-NetAdapter"); Collection<PSObject> psOutput = powerShellInstance.Invoke(); foreach (PSObject result in psOutput)
{
if (result.Members["InterfaceDescription"].Value?.ToString().ToUpper()?.Contains(adapterDescript.ToUpper()) ?? false)
{
mac = result.Members["PermanentAddress"].Value?.ToString();break;
}
} return mac;
}
补充:
Members中的"PermanentAddress"可以在Powershell源码GetComputerInfoCommand.cs查询到。
另外,返回的mac地址并没有格式,需要自己转换
还有个牛逼之处就是,禁用的网卡也能拿取信息?!
利用Get-NetIPAddress获取信息
Get-NetIPAddress
参考链接:https://docs.microsoft.com/en-us/powershell/module/nettcpip/Get-NetIPAddress?view=winserver2012r2-ps
显示的属性如下:

一般我们可以使用组合的指令
Get-NetIPAddress -InterfaceAlias "以太网 6" -AddressFamily IPv4
比如这个,就是过滤名字叫“以太网 6”,看IP是IPv4的内容。使用组合形式的代码是这样的:
using (PowerShell powerShellInstance = PowerShell.Create())
{
powerShellInstance.AddCommand("Get-NetIPAddress");
powerShellInstance.AddParameter("InterfaceAlias", name);
powerShellInstance.AddParameter("AddressFamily", "IPv4"); Collection<PSObject> psOutput = powerShellInstance.Invoke(); foreach (PSObject result in psOutput)
{
ipAddress = result.Members["IPAddress"].Value.ToString();
} return ipAddress;
}
C# 利用Powershell获取网络相关信息的更多相关文章
- Python基础:获取平台相关信息
Windows 10家庭中文版,Python 3.6.4, 本文介绍了使用os.platform.sys三个模块获取Python程序的运行平台相关的信息. os模块:提供 各种各样的操作系统接口 os ...
- 获取IP相关信息和文件上传
获取IP相关信息 要获取用户访问者的IP地址相关信息,可以利用依赖注入,获取IHttpConnectionFeature的实例,从该实例上可以获取IP地址的相关信息,实例如下: var connect ...
- Linux sysinfo获取系统相关信息
Linux中,可以用sysinfo来获取系统相关信息. #include <stdio.h> #include <stdlib.h> #include <errno.h& ...
- PHP获取手机相关信息
该PHP操作类实现获取手机号手机头信息,取UA,取得手机类型,判断是否是opera,判断是否是m3gate,取得HA,取得手机IP 代码如下: <?php /** * @desc 手机操作类 获 ...
- 通过runtime获取对象相关信息
通过runtime获取对象相关信息 在这里,本人给大家提供一个runtime关于NSObject的扩展,用来显示各种NSObject中的信息,这有助于你来分析类的组成:) 先准备以下类供测试: Mod ...
- [android] android 获取网络连接信息
效果图: 工具类 /** * 获取网络连接信息 * * 根据NetworkInfo可以知道有很多的连接方式和信息 * * ① 当没有任何可用网络的时候,networkinfo为null 判断netw ...
- [linux]netstat命令详解-显示linux中各种网络相关信息
1.功能与说明 netstat 用于显示linux中各种网络相关信息.如网络链接 路由表 接口状态链接 多播成员等等. 2.参数含义介绍 -a (all)显示所有选项,默认不显示LISTEN相关-t ...
- 获取系统相关信息 (CPU使用率 内存使用率 系统磁盘大小)
引言 在软件开个过程中,对于软件的稳定性和使用率也是我们需要关注的 . 使用sigar来监控,简单方便! 使用说明:下载sigar jar及配合sigar的dll文件来用,需要将dll文件放到JD ...
- 第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
一. 引言 在<第14.3节 使用google浏览器获取网站访问的http信息>和<第14.4节 使用IE浏览器获取网站访问的http信息>中介绍了使用Google浏览器和IE ...
随机推荐
- Python 安装selenium
一.报错信息 No module named 'selenium' 二.系统环境 操作系统:Win10 64位 Python版本:Python 3.7.0 三.安装参考 1.使用pip安装seleni ...
- linux Shell中常用的条件判断
linux Shell中常用的条件判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d ...
- 一次shell中seq的处理
一次shell中seq的处理 背景:用要shell 提取 文件中内容,文件名是用序列号如下生成,文件差不多有将近400多w个 如下: www.ahlinux.com 原始脚本#! /bin/sh# ...
- xgboost 调参 !
https://jessesw.com/XG-Boost/ http://blog.csdn.net/u010414589/article/details/51153310
- You-need-to-know-css
半透明边框 背景知识: background-clip <div class="main"> <input id="pb" type=&quo ...
- input 框提示信息
给input添加提示信息,只需添加 “placeholder”的class,将提示信息放在value中, 其中“placeholder”的名字是随便取的,不是H5的“placeholder”属性 例子 ...
- URAL 1104 Don’t Ask Woman about Her Age(数论)
题目链接 题意 : 给你一个数,未知进制,然后让你从2到36进制中找出一个最小的进制K,满足给你的这个数作为k进制时能够整除k-1. 思路 : 有一个公式,(a*b^n)mod(b-1)=a: 给定你 ...
- 观察者(Observer)模式 * 委托事件
观察者(Observer)模式:定义了一种一对多的依赖关系.让多个观察者对象同时监听某一个主题对象. 这个主题对象发生变化时会通知所有观察者对象,使他们字段更新自己 /* * 抽象主题(Subje ...
- Android学习笔记 Toast屏幕提示组件的使用方法
activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&qu ...
- XXX培训机构Python自动化教程目录