.net中c#获取本机IP地址实例代码
* 在使用前,一定要注意在头部加上引用:
using System.Net;
代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.Write(new Program().GetHostInfo());
- Console.ReadLine();
- }
- //获取本地IP等信息
- protected string GetHostInfo()
- {
- StringBuilder Info = new StringBuilder("");
- IPAddress[] ipHost = Dns.GetHostAddresses(Dns.GetHostName());
- Info.Append("本机名:");
- Info.Append(Dns.GetHostName());
- Info.Append(" -> ");
- Info.Append("IP 地址:");
- Info.Append(" -> ");
- foreach (IPAddress address in ipHost)
- {
- Info.Append(address.ToString());
- Info.Append(" >> ");
- }
- return Info.ToString();
- }
- }
- }
* 但是以上代码还不能满足 程序员的要求,想要的也许就是一个192.168.1.66这样的IP,所以需要进行过滤筛选,代码如下:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Net.NetworkInformation;
- using System.Text;
- using System.Text.RegularExpressions;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- String sd = new Program().GetLocalIP();
- Console.WriteLine(sd);
- Console.ReadLine();
- }
- /// <summary>
- /// 获取本地IP等信息
- /// </summary>
- /// <returns></returns>
- private string GetLocalIP()
- {
- //本机IP地址
- string strLocalIP = "";
- //得到计算机名
- string strPcName = Dns.GetHostName();
- //得到本机IP地址数组
- IPHostEntry ipEntry = Dns.GetHostEntry(strPcName);
- //遍历数组
- foreach (var IPadd in ipEntry.AddressList)
- {
- //判断当前字符串是否为正确IP地址
- if (IsRightIP(IPadd.ToString()))
- {
- //得到本地IP地址
- strLocalIP = IPadd.ToString();
- //结束循环
- break;
- }
- }
- //返回本地IP地址
- return strLocalIP;
- }
- /// <summary>
- /// 判断是否为正确的IP地址
- /// </summary>
- /// <param name="strIPadd">IP</param>
- /// <returns></returns>
- public static bool IsRightIP(string strIPadd)
- {
- //利用正则表达式判断字符串是否符合IPv4格式
- if (Regex.IsMatch(strIPadd, @"^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$"))
- {
- //根据小数点分拆字符串
- string[] ips = strIPadd.Split('.');
- if (ips.Length == || ips.Length == )
- {
- //如果符合IPv4规则
- if (System.Int32.Parse(ips[]) < && System.Int32.Parse(ips[]) < & System.Int32.Parse(ips[]) < & System.Int32.Parse(ips[]) < )
- {
- if(IsPingIP(strIPadd))
- //正确
- return true;
- else
- //错误
- return false;
- }
- //如果不符合
- else
- //错误
- return false;
- }
- else
- //错误
- return false;
- }
- else
- //错误
- return false;
- }
- /// <summary>
- /// 尝试Ping指定IP 是否能够Ping通
- /// </summary>
- /// <param name="strIP">IP</param>
- /// <returns></returns>
- public static bool IsPingIP(string strIP)
- {
- try
- {
- //创建Ping对象
- Ping ping = new Ping();
- //接受Ping返回值
- PingReply reply = ping.Send(strIP, );
- //Ping通
- return true;
- }
- catch
- {
- //Ping失败
- return false;
- }
- }
- }
- }
点我看代码~
* 参考:http://www.111cn.net/net/160/47427.htm
.net中c#获取本机IP地址实例代码的更多相关文章
- Linux下获取本机IP地址的代码
Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串. #define ETH_NAME "eth0" //获得本机IP地址 char* GetLocalAdd ...
- java获取本机IP地址
转载自:http://blog.csdn.net/thunder09/article/details/5360251 在网上找了几个用java获取本机IP地址的代码,发现都少都有些不完美,自己整理了一 ...
- shell中获取本机ip地址
shell中获取本机ip地址 方法一: /sbin/ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6|awk '{print $2}'|tr ...
- 关于是用dotnet获取本机IP地址+计算机名的方法
印象中在maxscript帮助文档里找到过方法,但是当时没记下来.只能通过dotnet实现了. 如果电脑有无线网卡和本地连接,可能会出现乱码,也问了写dotnet的朋友,提供了一些思路,不过最终还是使 ...
- QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址
获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...
- Python - 获取本机IP地址、Mac地址
Python - 获取本机IP地址.Mac地址 在python中获取ip地址和在php中有很大不同,在php中往往比较简单.那再python中怎么做呢? 直接看代码: # Python - 获取本机I ...
- 获取本机IP地址
这里有两种方法: //获取本机IP - (NSString *)localIPAddress { NSString *localIP = nil; struct ifaddrs *addrs; ) { ...
- Windows下获取本机IP地址方法介绍
Windows下获取本机IP地址方法介绍 if((hostinfo = gethostbyname(name)) != NULL) { #if 1 ; printf("IP COUNT: % ...
- C# 获取本机IP地址以及转换字符串
/// <summary> /// IP地址转化 /// </summary> /// <param name="ipaddr">整型的IP地址 ...
随机推荐
- Linux吃掉我的内存
在Windows下资源管理器查看内存使用的情况,如果使用率达到80%以上,再运行大程序就能感觉到系统不流畅了,因为在内存紧缺的情况下使用交换分区,频繁地从磁盘上换入换出页会极大地影响系统的性能.而当我 ...
- UVA 11859 Division Game[Nim游戏]
题意:给定一个N*M的矩阵,每次可以选择同一行中的若干个数,把它们变成它们的质因子.问说先手的可否获胜. 同一行相当于1堆,数量就是所有数的质因子个数之和 #include <iostream& ...
- CH Round #72树洞[二分答案 DFS&&BFS]
树洞 CH Round #72 - NOIP夏季划水赛 描述 在一片栖息地上有N棵树,每棵树下住着一只兔子,有M条路径连接这些树.更特殊地是,只有一棵树有3条或更多的路径与它相连,其它的树只有1条或2 ...
- COGS 265线段覆盖[线段树]
265. 线段覆盖 ★★☆ 输入文件:xdfg.in 输出文件:xdfg.out 简单对比时间限制:2 s 内存限制:20 MB [问题描述] 有一根长度为 L 的白色条状物.有两种操 ...
- return和finally的执行和联系
1.try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 也许你的答案是在return之前,但往更细地说, ...
- git放弃本地修改 强制更新
git fetch --all git reset --hard origin/mastergit fetch 只是下载远程的库的内容,不做任何的合并 git reset 把HEAD指向刚刚下载的最新 ...
- 数据库_MYSQL
数据库简介 数据库分类:关系型数据库.非关系型数据库 常用的关系型数据库有:orcale .mysql .sql server等等 常用的非关系型数据库有: Memcached.redis.mong ...
- SharePoint 2013常用开发工具分享
众所周知,一款好的开发工具不仅能提高项目开发效率,而且能够协助开发人员简化开发流程.本文汇总几款SharePoint 2013开发常用开发工具,希望能够对大家有所帮助.如果您有更好的工具,没有包含在本 ...
- EF6 在 SQLite中使用备忘
== 菜鸟级选手试验在EF6中使用Sqlite,零EF基础,少量Sqlite基础.经过断断续续的很长时间 - _ -! >>连接 1. 安装 使用目前最新版本EF6.1,Sqlite1.0 ...
- 【翻译】DotNetMQ: 一个.NET版完整的消息队列系统
在一个大型的分布式系统中,消息队列是不可缺少的中间件,能很好的解决异步消息.应用解耦.均衡并发等问题.在.net中,偶然发现一个效率不错.安全可靠.功能齐全的消息组件,忍不住翻译过来,供大家快速预览. ...