2010-06-04 3 views
7

Mein Team ein Projekt im Zusammenhang mit Netzwerk mit Asp.net MVC (C#).Wie validiere ich MAC-Adresse & ipaddress in Client-Seite (mit Javascript) & Server-Seite (mit C#)

benötigen I MAC-Adresse & ipaddress in Client-Seite (unter Verwendung von JavaScript) & Serverseite (unter Verwendung von C#) für eine einfache Form Eintrag zu bestätigen. Ich habe keine gute Lösung für die Validierung der MAC-Adresse & IP-Adressen bekommen.

Ich suchte google für das Finden einer guten Benutzerschnittstelle für das Bestätigen der Macadresse, indem Sie Doppelpunkt nach zwei Zahl zB geben: "XX: XX: XX: XX: XX: XX" unter Verwendung der maskierten Eingabe.Bitte geben Sie Referenz/Anleitung für das Implementieren Dies. Jedes jquery-Plugin für die Implementierung von Masked Input.

Antwort

0

überprüfen Sie das Format oder die tatsächlichen Adressen?

wenn die ehemaligen, regualar Ausdrücke versuchen ...

IP-Adresse: \ 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

Oder einen Blick here in Bezug auf Mac nehmen Adressen

+0

Ich muss sowohl das Format als auch die tatsächlichen Adressen validieren – amexn

+0

Verwenden Sie die regulären Ausdrücke, um das Format mit regulären Ausdrücken (entweder Client oder Server - wahrscheinlich am besten für beide) zu validieren und dann den Server zu verwenden, um die Verbindung zur IP - Adresse über ping (http : //msdn.microsoft.com/en-us/library/system.net.networkinformation.ping.aspx) und http://mycomponent.blogspot.com/2009/05/get-mac-address-in-c- from-ip.html, wenn sich der betreffende MAC auf die IP bezieht – justcompile

2

Wenn Sie die Adressen (IP, MAC erhalten müssen) serverseitig wird der folgende Code Ihnen helfen:

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); 
     } 
} 
Verwandte Themen