好一段时间没来更新博客了,因为密码实在记不住,烦死了,密码干脆直接用那个找回密码链接的一部分。

吐槽完说正事了,关于C#  获取本机IP的,最开始用的是下面的,但是因为获取IP的有点多,而且难判断,忽略了。

            IPAddress[] addressList = Dns.GetHostAddresses(Dns.GetHostName());

    后来换成了获取所有网卡的,网上这个案例很多

            NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();

但是获取的IP地址也还是很多,判断少,最后改为这样的:

        public static List<IPAddress> GetServerIP()
{
List<IPAddress> ipaddress = new List<IPAddress> (); //获取网卡
NetworkInterface[] interfaces = NetworkInterface.GetAllNetworkInterfaces();
try
{
//用于ping当前获取的网卡是否当前电脑使用的
using (Ping ping = new Ping())
{
foreach (NetworkInterface ni in interfaces)
{
//初学应该比较难懂这段,就是说枚举里是否包含某个枚举
//Wireless80211(无线连接)是否拥有Ethernet(以太网连接),所以所有包含以太网的都可以
if ((ni.NetworkInterfaceType & NetworkInterfaceType.Ethernet) != NetworkInterfaceType.Ethernet)
continue;
var ippros = ni.GetIPProperties().UnicastAddresses;
foreach (UnicastIPAddressInformation ip in ippros)
{
//还可以继续判断是否为0.0.0.0,是否172.0.0.1 之类的
//忽略不是ipv4的
if (ip.Address.AddressFamily != AddressFamily.InterNetwork)
continue;
//ping获取的IP地址,如果ping不通则不是当前使用的网络
var rep = ping.Send(ip.Address);
if (rep.Status != IPStatus.Success)
continue;
//项目需要
ipaddress.Add(ip.Address);
}
}
}
}
catch
{
//win7如果全部网卡禁用ping会报错,返回空
return ipaddress;
}
return ipaddress;
}

相对网上的,加了ping和Ethernet枚举判断的优化(不会忽略无线网卡)

懒得排版了,今天事还比较多,大家凑合着看。

C# 获取本机IP(优化项目实际使用版)的更多相关文章

  1. Shell 命令行获取本机IP,grep的练习

    Shell 命令行获取本机IP,grep的练习 在 mac 下面输入 ifconfig 或者在 linux 下面输入 ip a 就可以得到我们的网卡信息.不过通常情况下,我们需要查看的是我们的IP地址 ...

  2. 获取本机IP地址

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

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

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

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

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

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

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

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

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

  7. java获取本机IP地址

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

  8. #获取本机IP地址时排除IPv6类型,只返回IPv4地址的方法

    public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntr ...

  9. 获取本机IP、mac地址、计算机名

    python获取本机IP.mac地址.计算机名 在python中获取ip地址和在php中有很大不同,我们先来看一下python 获得本机MAC地址: >>> import uuid ...

随机推荐

  1. bzoj-1012 1012: [JSOI2008]最大数maxnumber(线段树)

    题目链接: 1012: [JSOI2008]最大数maxnumber Time Limit: 3 Sec  Memory Limit: 162 MB Description 现在请求你维护一个数列,要 ...

  2. [Selenium] Android HTML5 中 Web Storage

    在 HTML5 中,Web Storage 这个新特性可让用户将数据存储在本地的浏览器中.在早期的浏览器中可通过 cookies 来完成这个任务,但 Web Storage 会更加安全和高效,且 We ...

  3. angularJS 的双向数据绑定

    input 里面的vale="变量名";加上ng-model="变量名";控制器的变量名会根据视图层的数据改变而改变,而渲染内容也会根据控制器里面的变量改变而改 ...

  4. oracle 在insert into的时候报ORA-00928: missing SELECT keyword错 [问题点数:100分,结帖人dm520]

    转自:https://bbs.csdn.net/topics/310095274 INSERT INTO SA_Table(uniPositionCode,transferGroupName,appC ...

  5. 在word文档中添加上角标和下角标

    方法一 摘录:https://jingyan.baidu.com/article/02027811b4d2da1bcc9ce5f7.html 方法二 利用MathType数学公式编辑器 exe下载:h ...

  6. Ubuntu16.04安装Python3.6 和pip

    root账户,不是root账户,命令前加sudo 安装: 1.add-apt-repository ppa:jonathonf/python-3.6 2.apt-get update 3.apt-ge ...

  7. 百度也推出公共DNS服务:180.76.76.76(转载)

    转自:http://www.cnbeta.com/articles/352221.htm

  8. cocos2d-html5基础

    1 环境搭建 版本Cocos2d-html5-v2.2,tomcat7.0 配置tomcat,然后直接解压Cocos2d-html5-v2.2.zip,访问解压后的根目录的index.html就可以看 ...

  9. python string类型 bytes类型 bytearray类型

    一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode的序列. ...

  10. (3)javascript的数据类型

    本篇学习资料主要讲解javascript中的数据类型 Javascript的数据类型 Javascript的数据类型:即一个数据不必首先做声明,可以在使用或赋值时再确定其数据的类型,当然也可以先声明该 ...