C#获取本机IP且过滤非真实网卡(如虚拟机网卡)
参考了网上的文章,具体地址不记得了。
下面的方法可以过滤掉虚拟机的网卡等无效网卡,进而只留下真实的网卡。
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且过滤非真实网卡(如虚拟机网卡)的更多相关文章
- java获取本机IP地址,非127.0.0.1
综合了网上找的代码,整理的,Windows和Linux都可以用. private static String getHostIp(){ try{ Enumeration<NetworkInter ...
- java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了
本文参考https://blog.csdn.net/u011809209/article/details/77236602 本文参考https://blog.csdn.net/yinshuomail/ ...
- 获取本机IP和主机名
如果是在windows环境: 使用InetAddress.getLocalHost()方法即可 package com.datongsoft.wg.common.util; import java.n ...
- 获取本机IP地址
这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...
- python未知网卡名情况下获取本机IP
import socket def get_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even ...
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- Windows下获取本机IP地址方法介绍
Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...
- python学习之最简单的获取本机ip信息的小程序
文章是从我的个人博客粘贴过来的,大家可以直接访问我的个人博客哦 http://www.iwangzheng.com 获取本机ip信息的命令ifconfig总是在用,这次拿到pyhton代码里,感觉py ...
- java获取本机IP地址
转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...
随机推荐
- Android Fragment 完全解析
参考文章:http://blog.csdn.net/guolin_blog/article/details/8881711 http://blog.csdn.net/guolin_blog/artic ...
- OAViewObject中clearCache(),reset(),setMaxFetchSize(-1)的使用
今天在页面跳转之后,明明执行了查询,且查询语句正确的情况下,页面不显示数据,且点击SubmitButton包浏览器后退异常. 代码如下: OAViewObjectImpl vo=(OAViewObje ...
- Windows和Linux上用C与Lua交互
Windos2010编译lua的方法: http://blog.csdn.net/appletreesujie/article/details/12065369 Linux编译lua的方法: make ...
- Jquery跨域获得Json
这两天用 Jquery 跨域取数据的时候,经常碰到 invalid label 这个错误,十分的郁闷,老是取不到服务器端发送回来的 json 值, 一般跨域用到的两个方法为:$.ajax 和$.get ...
- scrapy 爬取自己的博客
定义项目 # -*- coding: utf-8 -*- # items.py import scrapy class LianxiCnblogsItem(scrapy.Item): # define ...
- 拥Bootstrap入怀——模态框(modal)篇
置顶文章:<纯CSS打造银色MacBook Air(完整版)> 上一篇:<CSS绘制Android Robot> 作者主页:myvin 博主QQ:851399101(点击QQ和 ...
- 开源分布式实时计算引擎 Iveely Computing 之 安装部署(2)
在Github中下载代码和二进制程序中,您都会看到一个bin\iveely computing目录,里面即是Iveely Computing的运行库. 以前总是有 ...
- Java学习笔记(六)——google java编程风格指南(下)
[前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...
- 如何使用bat命令批量删除指定文件名字的符号
新建一个TXT文本,将下面的内容复制进去 @Echo Off&SetLocal ENABLEDELAYEDEXPANSIONFOR %%a in (*) do (set "name= ...
- requirejs自己的学习
1.最新版本的RequireJS压缩后只有14K. 2.模块化,不在使用全局变量,都用块级作用域包装. 3.防止js加载阻止页面渲染. 4.避免出现多个javascript的标签.