内网IPAddress
public static string InternalNetworkIpAddress
{
get
{
var iPAddresses =
Dns
.GetHostAddresses(Dns.GetHostName())
.Where(ip =>
ip.GetAddressBytes().Length == 4
)
.Select(iPAddress =>
iPAddress
);
return string.Join(", ", iPAddresses);
}
}
公网IPAddress
public static string ExternalNetworkIpAddress
{
get
{
return GetExternalNetworkIpAddress();
}
}
private static string GetExternalNetworkIpAddress()
{
const string message = "获取失败";
const string url = "http://1212.ip138.com/ic.asp";
try
{
var webRequest = WebRequest.Create(url);
webRequest.Timeout = 10000;
var stream = webRequest.GetResponse().GetResponseStream();
var streamReader = new StreamReader(stream);
var readValue = streamReader.ReadToEnd();
const string pattern = @"([\d]{1,3}\.){3}[\d]{1,3}";
var match = Regex.Match(readValue, pattern);
return match.Success ? match.Value : message;
}
catch (Exception)
{
return message;
}
}