初始化版本
This commit is contained in:
100
SLC1-N/GetIP.cs
Normal file
100
SLC1-N/GetIP.cs
Normal file
@@ -0,0 +1,100 @@
|
||||
using System.Net;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
namespace SLC1_N
|
||||
{
|
||||
class GetIP
|
||||
{
|
||||
public 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();
|
||||
if (strLocalIP.Contains("192.168."))
|
||||
{
|
||||
//结束循环
|
||||
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 == 4 || ips.Length == 6)
|
||||
{
|
||||
//如果符合IPv4规则
|
||||
if (System.Int32.Parse(ips[0]) < 256 && System.Int32.Parse(ips[1]) < 256 & System.Int32.Parse(ips[2]) < 256 & System.Int32.Parse(ips[3]) < 256)
|
||||
{
|
||||
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, 1000);
|
||||
//Ping通
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
//Ping失败
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user