* 在使用前,一定要注意在头部加上引用:

using System.Net;

代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Text;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9. class Program
  10. {
  11. static void Main(string[] args)
  12. {
  13. Console.Write(new Program().GetHostInfo());
  14. Console.ReadLine();
  15. }
  16. //获取本地IP等信息
  17. protected string GetHostInfo()
  18. {
  19. StringBuilder Info = new StringBuilder("");
  20. IPAddress[] ipHost = Dns.GetHostAddresses(Dns.GetHostName());
  21. Info.Append("本机名:");
  22. Info.Append(Dns.GetHostName());
  23. Info.Append(" -> ");
  24. Info.Append("IP 地址:");
  25. Info.Append(" -> ");
  26. foreach (IPAddress address in ipHost)
  27. {
  28. Info.Append(address.ToString());
  29. Info.Append(" >> ");
  30. }
  31. return Info.ToString();
  32. }
  33. }
  34. }

 * 但是以上代码还不能满足 程序员的要求,想要的也许就是一个192.168.1.66这样的IP,所以需要进行过滤筛选,代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Net;
  5. using System.Net.NetworkInformation;
  6. using System.Text;
  7. using System.Text.RegularExpressions;
  8.  
  9. namespace ConsoleApplication1
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. String sd = new Program().GetLocalIP();
  16. Console.WriteLine(sd);
  17. Console.ReadLine();
  18. }
  19. /// <summary>
  20. /// 获取本地IP等信息
  21. /// </summary>
  22. /// <returns></returns>
  23. private string GetLocalIP()
  24. {
  25. //本机IP地址
  26. string strLocalIP = "";
  27. //得到计算机名
  28. string strPcName = Dns.GetHostName();
  29. //得到本机IP地址数组
  30. IPHostEntry ipEntry = Dns.GetHostEntry(strPcName);
  31. //遍历数组
  32. foreach (var IPadd in ipEntry.AddressList)
  33. {
  34. //判断当前字符串是否为正确IP地址
  35. if (IsRightIP(IPadd.ToString()))
  36. {
  37. //得到本地IP地址
  38. strLocalIP = IPadd.ToString();
  39. //结束循环
  40. break;
  41. }
  42. }
  43.  
  44. //返回本地IP地址
  45. return strLocalIP;
  46. }
  47. /// <summary>
  48. /// 判断是否为正确的IP地址
  49. /// </summary>
  50. /// <param name="strIPadd">IP</param>
  51. /// <returns></returns>
  52. public static bool IsRightIP(string strIPadd)
  53. {
  54. //利用正则表达式判断字符串是否符合IPv4格式
  55. if (Regex.IsMatch(strIPadd, @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"))
  56. {
  57. //根据小数点分拆字符串
  58. string[] ips = strIPadd.Split('.');
  59. if (ips.Length == || ips.Length == )
  60. {
  61. //如果符合IPv4规则
  62. if (System.Int32.Parse(ips[]) < && System.Int32.Parse(ips[]) < & System.Int32.Parse(ips[]) < & System.Int32.Parse(ips[]) < )
  63. {
  64. if(IsPingIP(strIPadd))
  65. //正确
  66. return true;
  67. else
  68. //错误
  69. return false;
  70. }
  71.  
  72. //如果不符合
  73. else
  74. //错误
  75. return false;
  76. }
  77. else
  78. //错误
  79. return false;
  80. }
  81. else
  82. //错误
  83. return false;
  84. }
  85. /// <summary>
  86. /// 尝试Ping指定IP 是否能够Ping通
  87. /// </summary>
  88. /// <param name="strIP">IP</param>
  89. /// <returns></returns>
  90. public static bool IsPingIP(string strIP)
  91. {
  92. try
  93. {
  94. //创建Ping对象
  95. Ping ping = new Ping();
  96. //接受Ping返回值
  97. PingReply reply = ping.Send(strIP, );
  98. //Ping通
  99. return true;
  100. }
  101. catch
  102. {
  103. //Ping失败
  104. return false;
  105. }
  106. }
  107. }
  108. }

点我看代码~

* 参考:http://www.111cn.net/net/160/47427.htm

.net中c#获取本机IP地址实例代码的更多相关文章

  1. Linux下获取本机IP地址的代码

    Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...

  2. java获取本机IP地址

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

  3. shell中获取本机ip地址

    shell中获取本机ip地址 方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr ...

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

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

  5. QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址

    获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...

  6. Python - 获取本机IP地址、Mac地址

    Python - 获取本机IP地址.Mac地址 在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 直接看代码: # Python - 获取本机I ...

  7. 获取本机IP地址

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

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

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

  9. C# 获取本机IP地址以及转换字符串

    /// <summary> /// IP地址转化 /// </summary> /// <param name="ipaddr">整型的IP地址 ...

随机推荐

  1. Linux吃掉我的内存

    在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能.而当我 ...

  2. UVA 11859 Division Game[Nim游戏]

    题意:给定一个N*M的矩阵,每次可以选择同一行中的若干个数,把它们变成它们的质因子.问说先手的可否获胜. 同一行相当于1堆,数量就是所有数的质因子个数之和 #include <iostream& ...

  3. CH Round #72树洞[二分答案 DFS&&BFS]

    树洞 CH Round #72 - NOIP夏季划水赛 描述 在一片栖息地上有N棵树,每棵树下住着一只兔子,有M条路径连接这些树.更特殊地是,只有一棵树有3条或更多的路径与它相连,其它的树只有1条或2 ...

  4. COGS 265线段覆盖[线段树]

    265. 线段覆盖 ★★☆   输入文件:xdfg.in   输出文件:xdfg.out   简单对比时间限制:2 s   内存限制:20 MB [问题描述] 有一根长度为 L 的白色条状物.有两种操 ...

  5. return和finally的执行和联系

    1.try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 也许你的答案是在return之前,但往更细地说, ...

  6. git放弃本地修改 强制更新

    git fetch --all git reset --hard origin/mastergit fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新 ...

  7. 数据库_MYSQL

     数据库简介 数据库分类:关系型数据库.非关系型数据库 常用的关系型数据库有:orcale .mysql .sql server等等 常用的非关系型数据库有: Memcached.redis.mong ...

  8. SharePoint 2013常用开发工具分享

    众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协助开发人员简化开发流程.本文汇总几款SharePoint 2013开发常用开发工具,希望能够对大家有所帮助.如果您有更好的工具,没有包含在本 ...

  9. EF6 在 SQLite中使用备忘

    == 菜鸟级选手试验在EF6中使用Sqlite,零EF基础,少量Sqlite基础.经过断断续续的很长时间 - _ -! >>连接 1. 安装 使用目前最新版本EF6.1,Sqlite1.0 ...

  10. 【翻译】DotNetMQ: 一个.NET版完整的消息队列系统

    在一个大型的分布式系统中,消息队列是不可缺少的中间件,能很好的解决异步消息.应用解耦.均衡并发等问题.在.net中,偶然发现一个效率不错.安全可靠.功能齐全的消息组件,忍不住翻译过来,供大家快速预览. ...