@[C# — 获取本机IP]
C# — 获得本机IP
概述
使用时间戳(yyMMddHHmmss)生成唯一ID,多线程操作时不保证唯一性,需要添加物理唯一和扩大时间戳的精度(yyMMddHHmmssfff)。
获取本机IP:
using System.Net;
using System.Net.Sockets;
public class IPUtil
{
/// <summary>
/// 获取本机地址
/// </summary>
/// <returns></returns>
public static string GetLocalIP()
{
String localIP = String.Empty;
try
{
string HostName = Dns.GetHostName();//得到主机名
IPHostEntry IpEntry = Dns.GetHostEntry(HostName);//解析主机名
for (int i=0;i< IpEntry.AddressList.Length;i++)
{
//从IP地址列表中筛选出IPv4类型的IP地址
//AddressFamily.InterNetwork表示此IP为IPv4,
//AddressFamily.InterNetworkV6表示此地址为IPv6类型
if (IpEntry.AddressList[i].AddressFamily== AddressFamily.InterNetwork)
{
localIP = IpEntry.AddressList[i].ToString();
break;
}
}
} catch (Exception ex)
{
//logHandle.ErrorLog("IPUtil", "GetLocalIP", ex);
}
return localIP;
}
}
设置新的唯一编号:
//设置新编号时,增加物理地址,确保唯一性
String ip =IPUtil.GetLocalIP();// 获取本机地址
if (ip==String.Empty|| ip.IndexOf('.')<0)
{
//MessageBox.Show("生成编号失败(获取本机地址失败)");
return;
}
String[] ipArr=ip.Split('.');
string suffix = ipArr[ipArr.Length-1];
suffix = String.Format("{0:D3}", int.Parse(suffix));
string unique = suffix+DateTime.Now.ToString("yyMMddHHmmssfff");
版权声明:本文为benbennvhai原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。