2010-06-04 17 views
7

Mi equipo está haciendo un proyecto relacionado con la red usando Asp.net MVC (C#).Cómo validar dirección MAC y dirección IP en el lado del cliente (usando javascript) y el lado del servidor (usando C#)

necesito para validar la dirección mac & direcciónip en el lado del cliente (usando javascript) & lado del servidor (usando C#) para un simple formulario de entrada. No obtuve una buena solución para validar las direcciones IP mac dirección &.

Busqué en Google para encontrar una buena interfaz de usuario para validar la dirección MAC dando dos puntos después de dos números, por ejemplo: "XX: XX: XX: XX: XX" usando entrada enmascarada. Da la referencia/guía para implementar esta. Cualquier complemento de jquery para implementar la entrada enmascarada.

Respuesta

0

¿Está tratando de validar el formato o las direcciones reales?

si el primero, tratar expresiones regualar ...

Dirección IP

: \ b (25 [0-5] | 2 [0-4] [0-9] | [01] [0? -9] [0-9]?). (25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?). (25 [0-5] | 2 [0-4] [0-9] | [01]? [0-9] [0-9]?). (25 [0-5] | 2 [0-4] [ 0-9] |?? [01] [0-9] [0-9]) b \

O echar un vistazo here con respecto a las direcciones MAC

+0

Necesito validar el formato y las direcciones reales – amexn

+0

Use las expresiones regulares para validar el formato usando expresiones regulares (ya sea cliente o servidor, probablemente lo mejor para ambos) luego use el servidor para probar la conectividad a la dirección IP a través de ping (http : //msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx) y http://mycomponent.blogspot.com/2009/05/get-mac-address-inc-c- from-ip.html si el MAC en cuestión se relaciona con el IP – justcompile

2

Si usted necesita para obtener las direcciones (IP, MAC) lado del servidor el código a continuación le ayudará:

public partial class RemoteClientInfo : System.Web.UI.Page 
{ 

    public class NetUtils 
     { 
      //http://msdn.microsoft.com/en-us/library/aa366358(VS.85).aspx 
      [System.Runtime.InteropServices.DllImport("iphlpapi.dll", ExactSpelling = true)] 
      public static extern int SendARP(int DestIP, int SrcIP, byte[] pMacAddr, ref uint PhyAddrLen); 

      private static System.Net.IPAddress GetIpAddress(string address) 
      { 
       System.Net.IPHostEntry hostEntry = System.Net.Dns.GetHostEntry(address); 
       if (hostEntry != null) 
       { 
        foreach (System.Net.IPAddress ipAddress in hostEntry.AddressList) 
        { 
         if (ipAddress.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) 
         { 
          return ipAddress; 
         } 
        } 
       } 
       return null; 
      } 

      public static string GetMacAddress(string address) 
      { 
       System.Net.IPAddress ipAddress = GetIpAddress(address); 

       if (ipAddress != null) 
       { 
        byte[] addressBytes = ipAddress.GetAddressBytes(); 
        byte[] macAddress = new byte[6]; 
        uint macAddressLen = (uint)macAddress.Length; 
        if (SendARP(BitConverter.ToInt32(addressBytes, 0), 0, macAddress, ref macAddressLen) == 0) 
        { 
         return BitConverter.ToString(macAddress); 
        } 
       } 
       return null; 
      } 
     } 

     protected void GetClientInfoButton_Click(object sender, EventArgs e) 
     { 
      string remoteIp = System.Web.HttpContext.Current.Request.UserHostAddress; 
      string remoteMacAddr = NetUtils.GetMacAddress(remoteIp); 
      this.InfoTextBox.Text = string.Format("ip=[{0}] mac=[{1}]", remoteIp, remoteMacAddr); 
     } 
} 
Cuestiones relacionadas