C # Obtenir l'adresse IP

en utilisant le système;
using System.Collections.Generic;
using System.Linq;
en utilisant System.Net;
en utilisant System.Net.NetworkInformation;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
en utilisant System.Web;

espace de noms Elight.Infrastructure
{
/// <summary>
/// 网络 操作。
/// </summary>
public class Net
{
#region Ip (获取 Ip)
/// <summary>
/// 获取 IP。
/// </summary>
public static string Ip
{
get
{
var result = string.Empty;
if (HttpContext.Current! = null)
{
result = GetWebClientIp ();
}
if (string.IsNullOrEmpty (result))
{
result = GetLanIp ();
}
retourne le résultat;
}
}

/// <summary>
/// 获取 Web 客户 端 IP。
/// </summary>
chaîne statique privée GetWebClientIp ()
{
//HttpContext.Current.Request.UserHostAddress
var ip = HttpContext.Current.Request.ServerVariables [" HTTP_X_FORWARDED_FOR "] ?? HttpContext.Current.Request.ServerVariables ["REMOTE_ADDR"];
foreach (var hostAddress dans Dns.GetHostAddresses (ip))
{
if (hostAddress.AddressFamily == AddressFamily.InterNetwork)
return hostAddress.ToString ();
}
return string.Empty;
}

/// <summary>
/// 获取 局域网 IP。
/// </summary>
chaîne statique privée GetLanIp ()
{
foreach (var hostAddress dans Dns.GetHostAddresses (Dns.GetHostName ()))
{
if (hostAddress.AddressFamily = = AddressFamily.InterNetwork)
renvoie hostAddress.ToString ();
}
return string.Empty;
}

/// <summary>
/// 获取 IP 地址 信息 (源 : 淘 宝 IP 库 接口)。
/// </summary>
/// <param name = "ip"> IP </param>
/// <renvoie > </returns>
chaîne statique publique GetAddress (string ip)
{
string result = string.Empty;
var url = "http://ip.taobao.com/service/getIpInfo.php?ip=" + ip;
essayez
{
using (var client = new WebClient ())
{
return client.DownloadString (url) .ToObject <TaoBaoIpEnitiy> () .GetAddress ();
}
}
catch
{
return string.Empty;
}
}

#endregion

#region Host (obtenir le nom d'hôte)

/// <summary>
/// 获取 主机 名。
/// </summary>
public static string Host
{
get
{
return HttpContext.Current == null? Dns.GetHostName (): GetWebClientHostName ();
}
}

/// <summary>
/// 获取 Web 客户 端 主机 名。
/// </summary>
chaîne statique privée GetWebClientHostName ()
{
if (! HttpContext.Current.Request.IsLocal)
renvoie string.Empty;
var ip = GetWebClientIp ();
var result = Dns.GetHostEntry (IPAddress.Parse (ip)). HostName;
if (result == "localhost.localdomain")
result = Dns.GetHostName ();
résultat de retour;
}

#endregion

#region Get mac address
/// <summary>
/// Renvoie un objet décrivant l'interface réseau sur l'ordinateur local (l'interface réseau est également appelée carte réseau).
/// </ summary>
/// <returns> </ retours>
public static NetworkInterface [] NetCardInfo ()
{
return NetworkInterface.GetAllNetworkInterfaces ();
}
/// <summary>
/// lire la carte réseau via NetworkInterface Mac
/ // </ summary>
/// <returns> </
Returns > public static List <string> GetMacByNetworkInterface ()
{
List <string> macs = new List <string> ();
NetworkInterface [] interfaces = NetworkInterface.GetAllNetworkInterfaces () ;
foreach (NetworkInterface ni dans les interfaces)
{
macs.Add (ni.GetPhysicalAddress (). ToString ());


}
#endregion

#region Browser (Obtenir les informations du navigateur)
/// <summary>
/// Obtenir les informations du navigateur
/// </ summary>
public static string Browser
{
get
{
if (HttpContext.Current == null)
return string.Empty;
var browser = HttpContext.Current.Request.Browser;
return string.Format ("{0} {1}", browser.Browser, browser.Version);
}
}
#endregion

#region Modèle d'interface de base de données d'adresses IP Taobao
/// <summary>
/// Modèle d'interface de base de données d'adresses Taobao IP.
/// http://ip.taobao.com/instructions.php
/// </ summary>
classe interne TaoBaoIpEnitiy
{
/// <summary>
/// Résultat de la réponse.
/// </ summary>
public int code {get; set;}
/// <summary>
/// Données de réponse.
/// </ summary>
public IpDataEnitiy data {get; set;}

chaîne publique GetAddress ()
{
if (this.data == null)
{
return string.Empty;
}
return string.Format ("{0} {1} {2}", this.data.country, this.data.region, this.data.city);
}
}

classe interne IpDataEnitiy
{
/// <summary>
/// 国家
/// </summary>
public string country {get; ensemble; }
/// <summary>
/// 国家 ID
/// </summary>
chaîne publique country_id {get; ensemble; }
/// <summary>
/// 地区
/// </summary>
zone de chaîne publique {get; ensemble; }
/// <summary>
/// 地区 ID
/// </summary>
chaîne publique area_id {get; ensemble; }
/// <summary>
/// 省份
/// </summary>
public string region {get; ensemble; }
/// <summary>
/// 省份 ID
/// </summary>
chaîne publique region_id {get; ensemble; }
/// <

/// </summary>
chaîne publique city {get; ensemble; }
/// <summary>
/// 城市 ID
/// </summary>
chaîne publique city_id {get; ensemble; }
/// <summary>
/// 地区
/// </summary>
public string county {get; ensemble; }
/// <summary>
/// 地区 ID
/// </summary>
chaîne publique county_id {get; ensemble; }
/// <summary>
/// 运营 商
/// </summary>
chaîne publique isp {get; ensemble; }
/// <summary>
/// ID 商 商
/// </summary>
chaîne publique isp_id {get; ensemble; }
/// <summary>
/// IP
/// </summary>
public string ip {get; ensemble;


}
}

Je suppose que tu aimes

Origine www.cnblogs.com/wugh8726254/p/12701391.html
conseillé
Classement