参考了网上的文章,具体地址不记得了。

下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Management; namespace _15获取本机IP_过滤非真实网卡_
{
class Program
{
static void Main(string[] args)
{
List<string> listIP = new List<string>();
ManagementClass mcNetworkAdapterConfig = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc_NetworkAdapterConfig = mcNetworkAdapterConfig.GetInstances();
foreach (ManagementObject mo in moc_NetworkAdapterConfig)
{
string mServiceName = mo["ServiceName"] as string; //过滤非真实的网卡
if (!(bool)mo["IPEnabled"])
{ continue; }
if (mServiceName.ToLower().Contains("vmnetadapter")
|| mServiceName.ToLower().Contains("ppoe")
|| mServiceName.ToLower().Contains("bthpan")
|| mServiceName.ToLower().Contains("tapvpn")
|| mServiceName.ToLower().Contains("ndisip")
|| mServiceName.ToLower().Contains("sinforvnic"))
{ continue; } //bool mDHCPEnabled = (bool)mo["IPEnabled"];//是否开启了DHCP
//string mCaption = mo["Caption"] as string;
//string mMACAddress = mo["MACAddress"] as string;
string[] mIPAddress = mo["IPAddress"] as string[];
//string[] mIPSubnet = mo["IPSubnet"] as string[];
//string[] mDefaultIPGateway = mo["DefaultIPGateway"] as string[];
//string[] mDNSServerSearchOrder = mo["DNSServerSearchOrder"] as string[]; //Console.WriteLine(mDHCPEnabled);
//Console.WriteLine(mCaption);
//Console.WriteLine(mMACAddress);
//PrintArray(mIPAddress);
//PrintArray(mIPSubnet);
//PrintArray(mDefaultIPGateway);
//PrintArray(mDNSServerSearchOrder); if (mIPAddress != null)
{ foreach (string ip in mIPAddress)
{
if (ip != "0.0.0.0")
{
listIP.Add(ip);
}
}
}
mo.Dispose();
} PrintList(listIP); Console.WriteLine("-- -- The End -- --"); Console.ReadKey();
} static void PrintList<T>(List<T> list)
{
foreach(T item in list)
{
Console.WriteLine(item);
}
} static void PrintArray<T>(T[] list)
{
foreach (T item in list)
{
Console.WriteLine(item);
}
Console.WriteLine();
}
}
}

C#获取本机IP且过滤非真实网卡(如虚拟机网卡)的更多相关文章

  1. java获取本机IP地址,非127.0.0.1

    综合了网上找的代码,整理的,Windows和Linux都可以用. private static String getHostIp(){ try{ Enumeration<NetworkInter ...

  2. java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了

    本文参考https://blog.csdn.net/u011809209/article/details/77236602 本文参考https://blog.csdn.net/yinshuomail/ ...

  3. 获取本机IP和主机名

    如果是在windows环境: 使用InetAddress.getLocalHost()方法即可 package com.datongsoft.wg.common.util; import java.n ...

  4. 获取本机IP地址

    这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...

  5. python未知网卡名情况下获取本机IP

    import socket def get_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even ...

  6. 关于是用dotnet获取本机IP地址+计算机名的方法

    印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...

  7. Windows下获取本机IP地址方法介绍

    Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...

  8. python学习之最简单的获取本机ip信息的小程序

    文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...

  9. java获取本机IP地址

    转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...

随机推荐

  1. java 8-6 抽象的练习

    1. 猫狗案例 具体事物:猫,狗 共性:姓名,年龄,吃饭 分析:从具体到抽象 猫: 成员变量:姓名,年龄 构造方法:无参,带参 成员方法:吃饭(猫吃鱼) 狗: 成员变量:姓名,年龄 构造方法:无参,带 ...

  2. java11-6 String类的其它功能

    String类的其他功能: 替换功能: String replace(char old,char new) String replace(String old,String new) 去除字符串两空格 ...

  3. Block 的基本用法

    iOS中Block的基础用法 转载自简书 本文简介 本章不会对Block做过多的实现研究.只是讲解基本的用法.纯粹基础知识.结合实际项目怎么去做举例.Block使用场景,可以在两个界面的传值,也可以对 ...

  4. 关于第一个Java应用

    一.创建Java源文件 Java应用由一个或多个扩展名为".java"的文件构成,这些文件被称为Java源文件,从编译的角度,则被称为编译单元(Compilation Unit). ...

  5. 【转】WCF与Web API 区别(应用场景)

    Web api  主要功能: 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作 请求的回 ...

  6. IOS开发之——keychain使用介绍 保护本地文件的安全

    iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式.每个ios程序都有一个独立的keychain存储.从ios 3.0开始,跨程序分享keychain变得可行. 使 ...

  7. Chrome扩展开发之四——核心功能的实现思路

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

  8. Sublime Text 之 Package Control 镜像

    本文同步自我的个人博客:http://www.52cik.com/2015/11/24/Package-Control.html 这阵子经常有朋友跟我说 Sublime Text 下的 Package ...

  9. Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)

    刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...

  10. mac版beyond compare 4 中对比class文件

    http://www.scootersoftware.com/download.php?zz=moreformats 这个网址中没有mac版本的class文件对比的file format.只能自己造了 ...